https://htmlpreview.github.io/?https://github.com/IvanSibirevV2/HowTo_Python/blob/main/EBOOK.html#/source

In [6]:
import os;import math;import sys;import datetime;
var='\\EBOOK.ipynb'
print (var,':',os.path.getsize(os.path.abspath(os.curdir)+var)/math.pow(2, 20),' мегобайт ',datetime.datetime.now())
#http://localhost:8888/notebooks/Untitled1.ipynb
#print("http://localhost:8888/notebooks/Untitled1.ipynb")
\EBOOK.ipynb : 38.92261219024658  мегобайт  2024-04-19 11:00:12.308149

Е.К. Баранова, А.В. Бабаш¶

Криптографическое писание о методах защиты информации¶

Лаббораторный практикум¶

Учебное пособие¶

бакалавриат¶

УДК 681.3(075.8)
BBK 32.81я 73
B24

Рецензенты:
Н.В.Мельников, д-р. техн. наук, проф., П.Б. Хорев, канд. тех. наур, доц.

Авторский коллектив:
Е.К. Баранова, доц. НИУ "Высшая школа экономики"(Москва),
А.В. Бабаш, проф. НИУ "Высшая школа экономики"(Москва),

Баранова Е.К. Б24
Криптографические методы защиты информации. Лабораторный практикум: учебное пособие / Е.К. Баранова, А.В. Бабаш. - М.: КНОРУС, 2015. - 200 с. + 1 электрон. - опт. диск (CD-ROM).-(Бакалавриат).
ISBN 978-5-406-03802-4

Посвяшено рассмотрению практических вопросов зашиты информации методами криптографии и стеганографии. Содержит описание лабораторных работ комплексом исполняемых программмных модулей на CD. Все практические работы предоставляют теоретический раздел и заключает перечень контрольных вопросов.

Соответствует действующему Федеральному государственному образовательному стандарту высшего образования нового поколения.

Для студентов бакалавриата и магистратуры, обучающихся по различным спе-циаальностям, использующих федеральный компонент по основам информационной безопасности и защите информации.

УДК 681.3(075.8)
BBK 32.81я 73

Баранова Елена Константиновна
Бабаш Александр Владимирович
КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАШИТЫ ИНФОРМАЦИИ. ЛАБОРАТОРНЫЙ ПРАКТИКУМ
Сертификат соответствия № РОСС RU.AE51. H 16509 от 18.06.2013.
Изд. № 6427. Подписано в печать 28.03.2014. Формат 60x90/16.
Гарнитура "NewtonC". Печать офсетная.
Усл. печ. л. 12,5. Уч.- изд. л. 7,1. Тираж 700 экз. Заказ № 612.
ооо "КноРус".

117218, г. Москва, ул. Кедрова, д. 14, корп. 2.
Тел.:8-495-741-46-28.
E-mail:office@knorus.ru http://www.knorus.ru
Отпечатано в ГУП МО "Коломенская типография".
140400, Московская обл., г. Коломна, ул. III Интернационала, д. 2a.
Тел.:9-496-618-69-33?618-60-16. E-mail: bab40@yandex.ru
ISBN 978-5-406-03802-4
Баранова Е.К., бАБАШ А.В.,2015
ООО "КноРус", 2015

Содержание¶

4 ... Предисловие

8 ... Часть 1¶

8 .... Теоретические сведения
10 ... Лабораторная работа № 1 Использование классических криптоалгоритмов подстановки и перестановки для защиты текстовой информации.
26 ... Лабораторная работа № 2 Исследование различных методов защиты текстовой информации и их стойкости на основе подбора ключей....
32 ... Лабораторная работа № 3 Изучение устройства и принципа работы шифровальной машины «Энигма»
43 ... Лабораторная работа № 4 Стандарт симметричного шифрования AES RIJNDAEL
55 ... Список литературы

56 ... Часть 2¶

56 ... Теоретические сведения
61 ... Лабораторная работа № 5. Генерация простых чисел, используемых в асимметричных системах шифрования
65 ... Лабораторная работа № 6. Электронная цифровая подпись
72 ... Лабораторная работа № 7. Шифрование методом скользящей перестановки
86 ... Лабораторная работа № 8. Изучение программных продуктов защиты информации. Программа PGP
96 ... Список литературы

97 ... Часть 3¶

97 .... Теоретические сведенияc
101 ... Лабораторная работа № 9. Шифр Плейфера
106 ... Лабораторная работа № 10. Дешифрование шифра простой перестановки при помощи метода Биграмм
115 ... Приложение 3.1. Таблица коэффициентов встречаемости биграмм в тексте
116 ... Лабораторная работа №11. Сеть Фейстеля
124 ... Лабораторная работа Ne 12. Регистры сдвига с линейной обратной связью как генераторы псевдослучайных чисел

139 ... Слисок литературы

140 ... Часть 4¶

140 ... Теоретические сведения
145 ... Лабораторная работа Ne 13. Защита программного обеспечения методами стеганографии
169 ... Лабораторная работа Ne 14. Защита электронных документов с использованием цифровых водяных знаков
189 ... Лабораторная работа Ne 15. Стегокомплексы, допускающие использование аудиоконтейнеров, на примере программы Invisible Secrets-4
196 ... Список литературы

4 ... ПРЕДИСЛОВИЕ¶

Информационная безопасность является одной из главных проблем, с которой сталкивается современное общество. Причиной обострения этой проблемы является широкомасштабное использование автоматизированных средств накопления, хранения, обработки и передачи информации.

Решение проблемы информационной безопасности связано с гарантированным обеспечением трех ее главных составляющих, доступности, целостности и конфиденциальности информации.

Поскольку информация перестала быть просто необходимым для производства вспомогательным ресурсом или побочным проявлением всякого рода деятельности, а приобрела ощутимый стоимостной вес, который четко определяется реальной прибылью, получаемой при ее использовании, или размерами ущерба, с разной степенью вероятности наносимого владельцу информации в случае ее искажения или утраты. Обеспечение целостности, доступности и конфиденциальности информации, циркулирующей в информационно-вычислительных системах и сетях, приобрели в настоящее время исключительное значение.

Предлагаемый практикум включает в себя 15 методических описаний лабораторных работ с комплектом исполняемых модулей. Весь практикум разделен на четыре части с той целью, чтобы при проведении занятий преподаватель в зависимости от количества часов выделенных на проведение занятий, и своего видения курса мог выбирать из предложенных разделов те или иные работы.

В первую часть включены практические задания, связанные с методами шифрования, использующими классические симметричные алгоритмы; исследованием различных методов зашиты текстовой информации и их стойкости на основе подбора ключей; изучением устройства и принципа действия шифровальной машины Энигма, с использованием программного эмулятора; изучением современного стандарта симметричного шифрования AES Rijndael.

При выполнении практических заданий из первой части предполагается рассмотрение следующих вопросов.

Изучение классических криптографических алгоритмов моноалфинитной подстановки, многоалфавитной подстановки и перестановки для защиты текстовой информации. Использование гистограмм, слображаюших частоту встречаемости символов в тексте для криптоанализа классических шифров (лабораторная работа N 1).

Изучение методов шифровании (расшифрования) перестановкой символов, подстановкой, гаммированием, использованием таблицы

Виженера. Исследование и сравнение стойкости различных методов, на основе атак путем перебора всех возможных ключей (лабораторная работа № 2).

Изучение принципов шифрования (расшифрования) информации, используемых в шифровальной машине Энигма. Ознакомление с общими принципами действия шифровальной машины Энигма на примере эмулятора Enigma3S (лабораторная работа № 3).

Ознакомление с принципами шифрования, используемыми в алгоритме симметричного шифрования AES Rijndael (лабораторная работа N° 4).

Вторая часть включает в себя практические задания для изучения процессов генерации простых чисел для систем асимметричного шифрования; процессов постановки и верификации электронной цифровой подписи; исследования шифра скользящей перестановки; изучения пакета PGP — программного обеспечения для защиты конфиденциальной информации.

При выполнении практических заданий из второй части предполагается рассмотрение следующих вопросов.

Изучение методов генерации простых чисел, используемых в системах шифрования с открытым ключом (лабораторная работа № 5).

Знакомство с основными положениями Федеральной целевой программы «Электронная Россия». Ознакомление с принципами защищенного электронного документооборота в телекоммуникационных сетях и алгоритмами постановки электронной цифровой подписи (лабораторная работа N 6).

Исследование шифра скользящей перестановки с использованием программной реализации XY-Mover (лабораторная работа № 7).

Ознакомление с общими принципами построения и использования программных средств защиты информации, в частности с программой PGP (Pretty Good Privacy). Освоение средств программной системы PGP, предназначенных:

  • для шифрования конфиденциальных ресурсов и разграничения доступа к ним;
  • обеспечения целостности информационных ресурсов с помощью механизма электронной цифровой подписи;
  • надежного уничтожения остаточной конфиденциальной информации;
  • скрытия присутствия и компьютерной системе конфиденциальной информации с помощью виртуального диска (лабораторная работа № 8).

стр 5¶

При выполнении практических заданий из третьего раздела рассматриваются следующие вопросы. Изучение принципа шифрования информации с помошью биграммного шифра Плейфсра (лабораторная работа N 9). Дешифрование шифра простой перестановки при помощи метоза бифамм (лабораторная работа N 10). Знакомство с принципом работы сети Фейстеля, как базовым образованием симметричных блочных криптосистем (лабораторная работа № 11).

Изучение принципа работы генератора псевдослучайных последовательностей, основанного на регистре сдвига с линейной Обратной связью (лабораторная работа № 12).

В четвертую часть практикума включены три лабораторные работы, предполагающие изучение защиты информационных ресурсов методами стеганографии. Стеганографическая система или стегоси-стема — совокупность средств и методов, которые используются для формирования скрытого канала передачи информации. Таким образом в отличие от криптографических методов методы стеганографии предполагают скрытие самого факта передачи информации.

Авторы не вынесли в заголовок практикума изучение стеганогра-фических методов защиты, но, поскольку методы стеганографии становятся чрезвычайно популярными в настоящее время и во многом, несмотря на нормативно-правовые трудности их применения, становятся альтернативой криптографическим методам защиты, авторы посчитали необходимым ознакомить читателей с основами использования стеганографии для защиты информационных ресурсов Вопросам стенографической защиты посвящены следующие лабораторные работы.

Ознакомление с методами защиты исполняемых программных файлов. Изучение возможностей стенографической защиты еле файлов путем встраивания цифровых водяных знаков (ЦВЗ) в пустое место, в конце секции файла (лабораторная работа № 13).

Зашита электронных документов с использованием цифровых водяных знаков на примерах встраивания ЦВЗ в бинарные изображения (лабораторная работа N 14).

Знакомство с программным обеспечением для стеганографической зашиты информации на примере прогаммного пакета Invisible Secrets-4 (лабораторная работа N° 15).

В книгу вошли материалы лабораторных работ, которые проводились авторами на протяжении последних лет для студентов Националаного исследовательского университета «Высшая школа экономики» (НИУ ВШЭ), Российского государственного социального университета (РГСУ) и Московского государственного университета экономики, статистики и информатики (МЭСИ). Большая часть демонстрационных программ для исследования процессов зашиты информации написаны студентами этих вузов под руководством авторов в рамках курсовых и дипломных работ. Авторы выражают благодарность своим студентам: Суханову Дмитрию, Беловой Ирине, Ташилину Евгению, Александрову Артему, Чудакову Сергею, Лазареву Вячеславу, Ларионову Игорю и другим создателям демонстрационных программ.

Лабораторный практикум рассчитан в первую очередь на студентов бакалавриата высших учебных заведений и магистрантов, обучающихся по различным специальностям, использующих федеральный компонент по основам информационной безопасности и защите информации.

стр 6¶

Часть 1¶

Теоретические сведения¶

Проблемы защиты информации. В настоящее время во всем мире резко повысилось внимание к проблеме информационной безопасности. Это обусловлено процессами стремительного расширения потоков информации, пронизывающих все сферы жизни общества.

Информация давно перестала быть просто необходимым для производства вспомогательным ресурсом или побочным проявлением всякого рода деятельности. Она приобрела ощутимую стоимость, которая определяется реальной прибылью, получаемой при ее использовании, или размерами ущерба с разной степенью вероятности наносимого владельцу информации. Однако создание индустрии переработки информации порождает целый ряд сложных проблем. Одной из таких проблем является надежное обеспечение сохранности и установленного статуса информации, циркулирующей и обрабатываемой в информационно-вычислительных системах и сетях.

Появление глобальных компьютерных сетей сделало простым доступ к информации как отдельным пользователям, так и большим организациям. Однако легкость и высокая скорость доступа к данным с помошью таких компьютерных сетей, как Internet, также сделали значительными следующие угрозы безопасности данных при отсутствии мер их защиты:

  • неавторизованный доступ к информации;
  • неавторизованное изменение информации;
  • неавторизованный доступ к сетям и сервисам;
  • другие сетевые атаки, например повтор перехваченных ранее транзакций и атаки типа «отказ в обслуживании».

При обработке любой значимой информации при помощи отдельного компьютера, а тем более в сети, возникает вопрос о ее защите от несанкционированного доступа и использования. Наиболее распространенный в компьютерных системах способ защиты использование паролей более пригоден для защиты доступа к вычислительным ресурсам, нежели для защиты информации. Пароль — своеобразный экран, огораживающий иконных пользователей системы от посторонних, пройдя сквозь который санкционированный пользователь получает доступ практически ко всей информации.

стр 8¶

В настоящее время исключительно важное значение в разных областях приобрели вопросы, связанные с сохранением и передачей конфиденциальной информации. Возникающие при этом задачи решает криптография — наука о методах преобразования информации в целях ее защиты от незаконных пользователей.

В настоящее время исключительно важное значение в разных областях приобрели вопросы, связанные с сохранением и передачей конфиденциальной информации. Возникающие при этом задачи решает криптография — наука о методах преобразования информации в целях ее защиты от незаконных пользователей.

Ретроспективный взгляд на историю развития криптографии как специфическую область человеческой деятельности позволяет выделить три основных периода. Первый, наиболее продолжительный, — период «ручной криптографии». Его начало теряется в глубокой древности. а закончился он в 1930-е гг. Криптография прошла путь от магического искусства до вполне прозаической прикладной специальности чиновников дипломатических и военных ведомств.

Второй период — создание и широкое внедрение в практику сначала механических, затем электромеханических и электронных устройств шифрования, организация целых сетей засекреченной связи. Его началом можно считать разработку Гилбертом Вернамом (G. Vernam) в 1917 г. схемы телеграфной шифровальной машины, использующей одноразовую гамму (рис. 1.1).

image.png

К середине 1970-х гт. с развитием разветвленных коммерческих сетей связи, электронной почты и глобальных информационных систем на первый план вышли новые проблемы — снабжения ключами и подтверждения подлинности.

В 1976 г. американские ученые Уитфилд Диффи (W Dime) и Мартин Хеллман (М. Hellman) предложили два новых принципа организации засекреченной связи без предварительного снабжения абонентов

СТР 9¶

секретными ключами шифронаним принцип так называемого открытого шифрования и принцип открытого распределения ключей момент можно считать началом нового периода в развитии криптографии. В настоящее время это направление современной криптографии очень интенсивно развивается.

Из истории криитографии. Понятие «безопасность» охватывает

широкий круг интересов как отдельных лип, так и иелых государств. Во всс исторические времена существенное внимание уделялось проблеме информационной безопасности, обеспечению защиты конфи денциальной информации от ознакомления, кражи, модификации, подмены. Решением этих вопросов занимается криптография

Термин «криптография» (тайнопись) ввел английский математик Джон Валлис (John Wallis) (1616-1703) (рис. 1.2). Потребность шифровать и передавать шифрованные сообщения возникла очень давно.

Сцитша. Еще в V—VI вв. до н.э. греки использовали специальное шифрующее устройство. По описанию Плутарха, это устройство состояло из двух цилиндрических стержней одинаковой длины и толщины, которые называли сциталами (рис. 1.3). При необходимости передачи сообщения длинную ленту папируса наматывали на сциталу, не оставляя на ней никакого промежутка, и писали на нем необходимую информацию. Затем папирус снимали и без стержня отправляли адресату. Поскольку буквы оказывались разбросанными в беспорядке, то прочитать сообщение мог только тот, кто имел свою сцита-лу такой же длины и толщины, чтобы намотать на нее папирус.

image.png Рис. 1.2. Джон Валлис

Квадрат Полибия . В Древней Греции (II в. до н.э.) был известен шифр, называемый квадратом Полибия. Это устройство представляло собой квадрат 5x5, столбцы и строки которого нумеровали цифрами от 1 до 5. В каждую клетку записывалась одна буква (в греческом варианте одна клетка оказывалась пустой, а в латин-ском — в одну клетку помешали две буквы: I, J) В результате каждой букве отвечала пара чисел по номеру строки и столбца. Пример квадрата Полибия приведен на рис. 1.4.

image.png

Рис 1.3. Сцита
1 Полибий (200 120 м до и ») древнегреческий историк

стр 10¶

1 2 3 4 5
A B C D E 1
F G H IJ K 2
L M N O P 3
Q R S T U 4
V W X Y Z 5

12 34 22 24 44 34 15 42 22 34 43 45 32
Congito ergo summ (лат.) - Я мыслю, следовательно, существую (Р. Декарт).

Рис. 1.4. Квадрат Полибия (а) и пример шифрования (б)

Код Цезаря. В I веке н.э. Ю. Цезарь во время войны с галлами, переписываясь со своими друзьями в Риме, заменял в сообщении первую букву латинского алфавита (А) на четвертую (D), вторую (В) — на пятую (Е), наконец, последнюю — на третью. Пример кода Цезаря изображен на рис. 1.5.

ABCDEFGHIJKLMNOPQRSTUVWXYZ
DEFGHIJKLMNOPQRSTUVWXYZABC

YHQL YLGL YLFL
Veni vidi vici (лат.) — «Пришел, увидел, победил» (Ю. Цезарь. Донесение Сенату о победе над понтийским царем).

Рис. 1.5. Код Цезаря (а) и пример шифрования (б)

Шифр Цезаря относится к так называемому классу моноалфавит-ных подстановок и имеет множество модификаций.

Решетка Кардано. Широко известны шифры, относящиеся к классу перестановки, в частности *решетка Карданов. Это прямоугольная карточка с отверстиями, чаще всего квадратная, которая при наложении на лист бумаги оставляет открытыми лишь некоторые его части. Число строк и столбцов на карточке четное. Карточка сделана так, что при последовательном ее поворачивании каждая клетка лежащего под ней листа окажется занятой. Карточку поворачивают сначала вдоль вертикальной оси симметрии на 180°, а затем вдоль горизонтальной оси также на 180° (рис. 1.6). И вновь повторяют ту же процедуру.

Диск Альберт и. Итальянец Альберти (XVI в.) впервые выднинчи идею двойного шифрования - текст, полученный в результате первою шифрования, подвергался повторному шифрованию. В трактате Альберти был приведен его собственный шифр, который он назвал. 1 Кардано Джероламо (1501 — 1576) — итальянский макмагик. философ и врач "шифром, достойным королей".

стр 11¶

Ом утверждал, ЧТО этот шифр недешифруем. Реализация шифра осуществлялась с помощью шифро вального диска, положиншего начало целой серии многоалфавитных подстановок. Устройство представляло собой пару диском ниещ ний. неподвижный (на нем были нанесены буквы и естественном порядке и цифры от 1 до 4) и внутренний подвижный (на нем бук вы были переставлены) (рис. 1.7). Процесс шифрования заключался в нахождении буквы открытого текста на внешнем диске и замену ее на соответствующую (стоящую под ней) букву шифрованного текста. После шифрования нескольких слов внутренний диск сдвигался на один шаг. Ключом данного шифра являлся порядок расположения букв на внутреннем диске и его начальное положение относительно внешнего диска.

image.png

image-3.png

стр 12¶

Таблица Вижснсра (1) Неудобство рассмотренных выше шрифтов моноалфавитных подстановок очевидно, так как в случае использования стандартного алфавита таблица частот встречаемости букв алфавита позволяет определить один или несколько символов, а этого иногда достаточно для вскрытия шифра («Пляшущие человечки» Конан Дойля или «Золотой жук» Эдгара По). Поэтому, для того чтобы затруднить дешифрование, использовали различные приемы, например таблицу Виженера, представляющую собой квадратную таблицу с числом строк и столбцов, равным количеству букв алфавита (рис 1.8). Чтобы зашифровать какое-либо сообщение, выбирают слово-лозунг (например, «монастырь») и надписывают его над сообщением с необходимым повторением.

Чтобы получить шифрованный текст, находят очередной знак лозунга, начиная с первого, в вертикальном алфавите, а ему — соответствующий знак сообщения в горизонтальном алфавите. На пересечении выделенных столбца и строки находят первую букву шифра. Очевидно, что ключом к такому шифру является используемый лозунг.

Одноразовый шифровальный блокнот. Примером нераскрываемо-го шифра может служить так называемый одноразовый шифрованный блокнот — шифр, в основе которого лежит та же идея, что и в шифре Цезаря. Назовем расширенным алфавитом множество букв алфавита и знаков препинания {.,:;!?() — " <пробел>}, число символов расширенного кириллического алфавита в данном варианте будет равно 44. Занумеруем символы расширенного алфавита числами от 0 до 43. Тогда любой передаваемый текст можно рассматривать как последовательность {а„} чисел множества А = {0, 1,..., 43}.

Предположим, что имеем случайную последовательность $c_n$ из чисел множества А той же длины, что и передаваемый текст — ключ. Складывая по модулю 44 число из передаваемого текста $а_n$ с соответствующим числом из множества ключа $c_n$:

$$a_n+c_n=b_n(mod 44),0<=b_n<=43$$

получим последовательность $b_n$ знаков шифрованного текста. Чтобы получить передаваемый текст, можно воспользоваться тем же ключом:

$$a_n=b_n-c_n(mod44),0<=a_n<=43$$

Блез де Виженер (1523-1596) французский посол в Риме, который написал большой труд о шифрах Кналрашый шифр Инженера на протяжении почти 400 лет не был дешифрован и счиился нелешифруемым шифром

стр13¶

А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я
Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А
В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б
Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В
Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г
Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д
Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е
З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж
И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З
Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И
К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й
Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К
М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л
Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М
О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н
П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О
Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П
С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р
Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С
У Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т
Ф Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У
Х Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф
Ц Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х
Ч Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц
Ш Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч
Щ Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш
Ь Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ
Ы Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь
Э Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы
Ю Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э
Я А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Э Ю

монастырьмонастырьмон
раскинулосьморешироко
эоякщапыйюйщовчфльшы
Рис. 1.8. Таблица Виженера (а) и пример шифрования (б)

стр 14¶

У двух абонентов, находящихся в секретной переписке, имеются два одинаковых блокнота. В каждом из них на нескольких листах напечатана случайная последовательность чисел множества А Отправитель свой текст шифруется указанным выше способом при помощи первой страницы блокнота. Зашифровав сообщение, он уничтожает использованную страницу и отправляет текст сообщения второму абоненту. Получатель шифрованного текста расшифровывает его и также уничтожав использованный лист блокнота. Очевидно, что одноразовый шифр не раскрываем в принципе, так как символ в тексте может быть заменен любым другим символом и этот выбор совершенно случаен.

Методы шифрования. Одноалфавитный метод . Данный метод, пожалуй, самый древний из всех известных методов. В его основе лежит простой способ шифрования: отправитель и получатель зашифрованного документа заранее договариваются об определенном смешении букв относительно их обычного местоположения в алфавите. Например, для кириллицы если смещение равно 1, то буква «А» соответствует букве «Б», «Б» — «В» и т.д. Когда алфавит заканчивается, берут буквы из начала списка. И выходит, например, следующее: из слова КОДИРОВАНИЕ получается ЛПЕЙСПГБОЙЖ.

Частным случаем этого является ранее рассмотренный шифр Цезаря. Очевидно, что произвольный шифр из класса одноалфавитных методов не является шифром Цезаря (если мощность алфавита текста равна n, то число шифров Цезаря равно n, а число всех одноалфавитных шифров — n!). Однако и для таких методов легко предложить способы дешифрования, основанные на статистических свойствах шифрованных текстов, поскольку открытый и закрытый тексты имеют одинаковые статистические характеристики.

Шифрование методом перестановки символов. Суть этого метода заключается в том, что символы текста переставляются по определенным правилам, при этом используются только символы исходного (незашифрованного) текста. Перестановки в классической криптографии обычно получают в результате записи исходного текста и чтения шифрованного текста по разным путям геометрической фигуры Простейшим примером перестановки является запись исходною текста по строкам некоторой матрицы и чтение его по столбцам этой матрицы.

Последовательность заполнения строк и чтения столбцов может быть любой и задается ключом. Таким образом, для матрицы размером

(1) В лабораторной работе №1 рассматривается два варианта одноалфавитного метода: с фиксированным смещением и с произвольным (задаваемым) смещением.

стр 15¶

8x8 (длина блока 64 символа) возможно 1,6x109 ключей, что позволя ет на современных компьютерах путем перебора дешифровать текст Однако для матрицы размером 16x16 (длина блока 256 символов) су шествует 1,4х1026 ключей и перебор их с помощью современных вы числительных средств весьма затруднителен.

Примером применения метода перестановки символов является восьмиэлементная таблица, обладающая совокупностью маршрутов, которые называются «маршруты Гамильтона». Последовательность заполнения таблицы каждый раз соответствует нумерации ее элементов. Если длина шифруемого текста не кратна числу элементов, то при последнем заполнении в свободные элементы заносится произвольный символ. Выборка из таблицы для каждого заполнения может выполняться по своему маршруту, при этом маршруты могут использоваться как последовательно, так и в порядке, задаваемом ключом.

Для методов перестановки характерны простота алгоритма, возможность программной реализации и низкий уровень защиты, так как при большой длине исходного текста в его зашифрованном варианте проявляются статистические закономерности ключа, что и позволяет его быстро раскрыть. Другой недостаток этих методов — легкое раскрытие, если удается направить в систему для шифрования несколько специально подобранных сообщений. Так, если длина блока в исходном тексте равна K символам, то для раскрытия ключа достаточно пропустить через шифровальную систему К - 1 блоков исходного текста, в которых все символы, кроме одного, одинаковы.

Шифрование инверсными символами (по дополнению до 255). Данный метод шифрования является частным случаем одноалфавитной замены в алфавите мощности 256. Суть метода заключается в замене символа ASCII-кодировки с номером i на символ с номером 255 - i Аналогично проводится и операция расшифрования.

Многоалфавитные методы шифрования Многоалфавитное шифрование (многоалфавитная замена) заключается в том, что для последовательных символов шифруемого текста используются одноалфа витные методы с различными ключами.

Например, первый символ заменяется по методу Цезаря со смешением 14, второй — со смешением 10 и т.д. до конца заданного ключа. Затем процедура продолжается периодически. Более общей является ситуация, когда используется не шифр Цезаря, а последовательность произ вольных подстановок, соответствующих одноалфавитным методам.

(1) В лабораторной работе N 1 рассматриваются три варианта мноюалфавитного метода: с фиксированным ключом, с ключом фиксированной длины и с ключом произвольной длины.

стр16¶

Более наглядным примером подобною шифрования является метод гаммирования. Этот способ преобразования заключается в том, что символы закрываемого текста последовательно складываются с символами некоторой специальной последовательности, именуемой гаммой. Такое преобразование иногда называют наложением гаммы на открытый текст.

Собственно процедура наложения может осуществляться одним из двух способов:

1) символы закрываемого текста и гаммы заменяются цифровыми эквивалентами, а затем складываются по модулю К:
$T_ш=(T_о \oplus T_г) mod K $
где $T_ш$ - шифротекст; $T_о$ - открытый текст ; $T_г$ - гамма; K - количество символов алфавита;

2) символы текста и гаммы представляются в двоичных кодах, а затем каждая пара двоичных разрядов складывается по mod 2.

Стойкость шифрования методом гаммирования определяется главным образом качеством гаммы, которое характеризуется длиною периода и случайностью распределения по периоду.

Длинна периода гаммы — минимальное количество символов, после которого последовательность начинает повторяться. Случайность распределения символов по периоду означает отсутствие закономерностей между появлением различных символов в пределах периода.

Основные требования, предъявляемые к методам шифрования информации:

  • сложность и трудоемкость процедур шифрования и расшифрования должны определяться в зависимости от степени секретности защищаемых данных;
  • надежность закрытия должна быть такой, чтобы секретность не нарушалась даже в том случае, когда злоумышленнику известен способ закрытия;
  • способ закрытия и набор используемых служебных данных (ключевых установок) не должны быть слишком сложными Затраты на защитные преобразования должны быть приемлемые при заданном уровне сохранности информации;
  • выполнение процедур прямого и обратного преобразования должно быть формальным и как можно проще;

стр 17¶

  • процедуры прямого и обратного преобразования не должны зависеть от длины сообщения;
  • ошибки, возникающие в процессе преобразования, не должны распространяться по системе и вызывать потерю информации. Из=за появления ошибки передачи зашифрованного сообщения по каналам связи не должна испключаться возможность надежной расшифровки текста на приемном конце;
  • избыточность сообщений, вносимая закрытием, должна быть как можно меньше;
  • объем ключа не должен затруднять его запоминание и пересылку.

Гистограмма текста. Одним из наиболее известных методов криптоанализа является изучение статистических характеристик шифрованных текстов. Графическое отображение совокупности частот встречаемости символов в тексте называют гистограммой этого текста. Предположим, что мы имеем дело с методом одноалфавитного шифрования. Зная частоту встречаемости буки в алфавите, можно предположить, кикая буква была заменена на данную. Например, часто встречаемая буква «О» вменена на редко встрсчаюшуюся букву «Щ». Следует иметь в вииду, что вид гистограммы для стандартного распределения зависит от вида исходного текста следующим образом: если исходный текст содержит символы кириллицы и латинского алфавита, то выводится статистическое распределение для кириллицы и латиницы, если только кириллицы (латиницы), то выводится статистическое распределение для кириллицы (латиницы). (1) Для наглядности в лабораторной работе №1 используется двойные гистограммы, отображающие частоту встречаемости символов в исходном и зашиврованном текстах.

стр 18¶

ЛАБОРАТОРНАЯ РАБОТА № 1¶

ИСПОЛЬЗОВАНИЕ КЛАССИЧЕСКИХ КРИПТОАЛГОРИТМОВ ПОДСТАНОВКИ И ПЕРЕСТАНОВКИ ДЛЯ ЗАЩИТЫ ТЕКСТОВОЙ ИНФОРМАЦИИ¶

Цель работы: изучение классических криптографических алгоритмов моноалфавитной подстановки, многоалфавитной подстановки и перестановки для защиты текстовой информации. Использование гистограмм, отображающих частоту встречаемости символов в тексте для криптоанализа классических шифров.

Описание лабораторной работы. Для выполнения лабораторной работы необходимо запустить программу L_LUX.EXE. На экране дисплея появляется окно с размешенным в его центре текстовым редактором (для отображения зашифрованных и расшифрованных текстов), в верхней строке окна расположено главное меню, позволяющее пользователю выполнить требуемое действие. Чуть ниже основного меню размещена панель инструментов (для управления быстрыми командными кнопками и другими «горячими» элементами управления), а в самом низу окна, под текстовым редактором, находится строка состояния, в которой указывается подсказка и выводится дополнительная информация. Клавиши панели инструментов для удобства снабжены всплывающими подсказками.

Для того чтобы попасть в основное меню, необходимо нажать клавишу F10. Передвижение по главному меню осуществляется клавишами перемещения курсора. Чтобы вызвать пункт меню, нужно нажать клавишу ENTER, вернуться в главное меню или вовсе выйти из него — ESC.

Рассмотрим более подробно каждый из пунктов главного меню. Редактор. Данный пункт основного меню содержит подпункты: создать документ, открыть файл, сохранить файл, выход из программы.

Предварительно, сразу после запуска программы, текстовый редактор недоступен, также недоступными являются почти все пункты главного меню, кроме создания документа, открытия файла, выхода из программы, информации о программе, и бблыпая часть клавиш панели управления, за исключением создания документа, открытия файла и выхода из программы.

Создать документ (Ctrl+N) — при выборе данною подпункта становится доступна работа с тестовым редактором (пользователь получает право создать свой текстовый файл, который впоследствии можно будет использовать при работе с программой), также появляется воэможность использовать все недоступные до этого пункты основного меню и клавиши панели управления.

стр19¶

Открыть файл (Ctrl+L) - при выборе этого пункта появляется диалоговое окно, предоставляющее возможность выбора файла для загрузки. При этом содержимое файла будет отображено в окне редактора текстов. Аналогично пункту СОЗДАТЬ ДОКУМЕНТ доступным для работы становится текстовый редактор с отображаемым текстом, а также появляется возможность использовать все недоступные до этого пункты основного меню и клавиши панели управления.

Сохранить файл (Ctrl+S) - при выборе этого пункта появляется диалоговое окно, позволяющее сохранить на диске содержимое редактора текстов. Выход из программы (Ctrl+X) — при выборе этого пункта появляется диалоговое окно, позволяющее выйти из программы. Гистограмма. Вывод на экран двух гистограмм, отображающих частоту встречаемости символов в тексте. Внимание!До выполнения шифрования и дешифрования вызывать гистограмму не имеет смысла, так как еще не сформированы тексты, для которых будет просматриваться гистограмма.

Имеется возможность просмотра следующих сочетаний гистограмм:

  • исходного и зашифрованного файла;
  • зашифрованного и расшифрованного файла;
  • стандартного распределения и зашифрованного текста;
  • стандартного распределения и расшифрованного текста.

С целью масштабирования в гистограммах используются левая ,i правая клавиши мыши. Например, после шифрования текста большого объема пользователь хочет посмотреть гистограммы исходного и зашифрованного файла. Поскольку размеры текста достаточно большие, то на экран будут выведены две гистограммы с большим количеством столбцов в каждой (столбец соответствует одному символу гекста), однако трудно будет сказать, какой из этих столбцов соответствует тому или иному символу текста и какова частота встречаемости данного символа. Поэтому у пользователя есть возможность увеличить масштаб любой из двух гистограмм для более точного определения ребуемого значения частоты встречаемости конкретного символа. Для лого необходимо навести указатель мыши на левую границу того участка гистограммы, который требуется увеличить, затем нажать левую клавишу мыши и, не отпуская ее, растянуть прямоугольник так, чтобы ею нижний правый угол совпал с правой границей увеличивав-мого участка гистограммы.

стр 20¶

После этого следует отпустить левую клавишу мыши и на экране появится увеличенное изображение нужного участка. Нажав и не отпуская правую клавишу мыши, можно перемешать гистограмму в любом направлении с целью изучения всего полу ченного распределения в увеличенном масштабе.

Для того чтобы от увеличенного масштаба вернуться к исходному виду, нужно навести указатель мыши на гистограмму, затем нажать левую клавишу мыши и, не отпуская ее, снизу вверх растянуть не большой по размерам прямоугольник, после этого следует отпустить левую клавишу мыши и на экране появится исходное изображение гистограммы.

Шифрование. Выполнение шифрования текстового файла осуществляется одним из семи методов, рассматриваемых в лабораторной работе:

  • 1)одноалфавитный (с фиксированным смешением);
  • 2)одноалфавитный с задаваемым смещением (от 2 до 20);
  • 3)перестановка символов;
  • 4)по дополнению до 255 (инверсный);
  • 5)многоалфавитный (с фиксированным ключом);
  • 6)многоалфавитный с ключом фиксированной длины;
  • 7)многоалфавитный с ключом произвольной длины.

Выбор метода шифрования производится как мышкой, так и клавишами перемещения курсора и клавишей ENTER. Затем появляется окно, в котором в зависимости от метода шифрования требуется указать те или иные параметры и либо подтвердить процесс кодировки, либо отказаться от него. После этого в окне редактора будет выдан зашифрованный текст.

Расшифрование. Аналогично предыдущему пункту выбирается метод расшифрования (должен соответствовать методу, которым был зашифрован файл). Снова появляется окно, в котором в зависимости от метода расшифрования требуется указать те или иные параметры и либо подтвердить процесс расшифрования, либо отказаться от него. После этого в окно редактора будет выдан расшифрованный текст. При правильном расшифровании полученный текст совпадает с исходным.

Дополнительная информация. Программа предусматривает воз можность посмотреть дополнительную информацию («Помощь Ctrl + F9»), справочную информацию об используемых методах шиф рования («О методах Ctrl+F10»), сведения о программе («О программе Ctrl+F11»).

стр 21¶

Пример работы с программой¶

Рассмотрим одноалфавитное шифрование с фиксированным ключом. Нажав клавиши Ctrl+L либо выбрав в меню пункт Открыть файл, загрузите в окно редактора исходный текст. Затем вызовите пункт меню Шифрование, выберите одноалфавит ный метод (с фиксированным смещением). В появившемся окне на жмите клавишу Зашифровать. После того как шифрование выполнено, можно в редакторе просмотреть зашифрованный текст. Перейдите к пункту меню Гистограмма. Выберите тип гистограмм отображающий гистограммы исходного и шифрованного файлов Проанализируйте гистограммы. Они должны иметь примерно одинаковый вид.

Чтобы узнать ключ шифра (смешение второго алфавита относительно первого), необходимо по гистограммам найти символы, имеющие одинаковую частоту встречаемости. Например, самый частый символ в первой гистограмме при шифровании должен перейти в самый частый символ во второй гистограмме. Таким образом, найдя два самых часто встречаемых символа в обеих гистограммах, можно по стандартной таблице ASCII-кодов вычислить смещение. Зная смешение и таблицу кодировки символов, текст можно легко расшифровать. Вызвав пункт меню Дешифрование, можно провести те же действия в автоматическом режиме.

Примечание. При шифровании и расшифровании из таблицы кодировки не мспольз> ются символы с кодами 176-223 и 240-255, т.е. при ручной расшифровке эти символы следует пропускать и считать, что, например, символ 'Я' имеет код не 159. а 223. аналогично не 175, а 239.

Иногда в гистограммах под столбцами, показывающими частоту встречаемости символов, изображены не сами символы, а их таблич ные коды в квадратных скобках.

Ниже приведено описание «горячих» клавиш и их использование при выполнении различных действий:

  • Shift+F10 — о программе;
  • Ctrl+X — выход из программы;
  • Ctrl+N — new - ФАЙЛ/Создать;
  • Ctrl+L — load - Файл/Открыть;
  • Ctrl+S — save Файл/Сохранить. Шифрование:
  • Ctrl+Fl одноалфавитный метод (с фиксированным смещением);
  • Ctrl+F2 одноалфавитный с задаваемым смещением (от 2 до 20),
  • Ctrl+F3 — перестановка символов;
  • Ctrl+F4 — по дополнению до 255 (инверсный метол);
  • Ctrl+F5 — многоалфавитный метод с фиксированным ключом,
  • Ctrl+F6 — многоалфавитный метод с ключом фиксированной длины;
  • Ctrl+F7 многоалфавитный метод с ключом произвольной длины.

стр 22¶

Расшифровывание:

  • Shift+F1 — одноалфавитный метод (с фиксированным смешением);
  • Shift+F2 — одноалфавитный с задаваемым смешением (от 2 до 20);
  • Shift+F3 — перестановка символов;
  • Shift+F4 — по дополнению до 255 (инверсный метод);
  • Shift+F5 — многоалфавитный метод с фиксированным ключом;
  • Shift+F6 — многоалфавитный метод с ключом фиксированной длины;
  • Shift+F7 — многоалфавитный метод с ключом произвольной длины.

Гистограммы:

  • Shift+Ctrl+Fl — исходного и шифрованного файла;
  • Shift+Ctrl+F2 — шифрованного и расшифрованного файла;
  • Shift+Ctrl+F3 — стандартного распределения и шифрованного текста;
  • Shift+Ctrl+F4 - стандартного распределения и расшифрованного текста.

Помощь:

  • Ctrl+F9 — помощь;
  • Ctrl+F10 — о методах;
  • Ctrl+Fll —о программе.
  • Ctrl+F3 перестановка симполои;
  • Ctr!+F4 - по дополнению до 255 (инверсный метол);
  • Ctrl+F5 — многоалфавитный метод с фиксированным ключом,
  • Ctrl+F6 - многоалфавитный метод с ключом фиксированной длины;
  • Ctrl+F7 многоалфавитный методе ключом произвольной длины.

стр 22¶

Расшифрование:

  • Shift+F1 - одноалфавитный метод (с фиксированным смешением);
  • Shift+F2 — одноалфавитный с задаваемым смешением (от 2 до 20);
  • Shift+F3 — перестановка символов;
  • Shift+F4 — по дополнению до 255 (инверсный метод);
  • Shift+F5 — многоалфавитный метод с фиксированным ключом;
  • Shift+F6 — многоалфавитный метод с ключом фиксированной длины;
  • Shift+F7 — многоалфавитный метод с ключом произвольной длины.

Гистограммы:

  • Shift+Ctrl+Fl — исходного и шифрованного файла;
  • Shift+Ctrl+F2 — шифрованного и расшифрованного файла;
  • Shift+Ctrl+F3 — стандартного распределения и шифрованного текста;
  • Shift+Ctrl+F4 — стандартного распределения и расшифрованного текста; Помощь:
  • Ctrl+F9 — помощь;
  • Ctrl+F10 — о методах;
  • Ctrl+Fl 1 — о программе.

Задание
1.Ознакомиться с описанием лабораторной работы и заданием.
2.Для одноалфавитного метода с фиксированным смешением определить установленное в программе смешение. Для этого следует.

  • просмотреть предварительно созданный с помощью редактора свой текстовый файл;
  • выполнить для этого файла шифрование,
  • просмотреть в редакторе зашифрованный файл;
  • просмотреть гистофаммы исходною и зашифрованного текстов;
  • описать гистограммы (в чем похожи, чем отличаются) и определить, с каким смешением было выполнено шифрование;

расшифровать зашифрованный текст

  • с помошью программы, после чего проверить в редакторе правильность расшифрования,
  • вручную с помошью гистограмм; описать и объяснить процесс дешифрования.

стр 23¶

В отчете для каждого метода шифрования описывается последовательность выполняемых действий, имена всех использованных файлов, полученные гистограммы, указывается найденное смешение, описывается процесс дешифрования. Преподавателю предоставляется отчет о проделанной работе и все использованные и созданные файлы.

  1. Для одноалфавитного метода с задаваемым смешением (шифр Цезаря) следует:
  • выполнить шифрование с произвольным смещением для своего исходного текста;
  • просмотреть и описать гистограммы исходного и зашифрованного текстов, определить смещение для нескольких символов;
  • расшифровать текст с помошью программы;
  • дешифровать зашифрованный шифром Цезаря текст с помощью программы методом подбора смешения; указать, с каким смещением был зашифрован файл.
  1. Для метода перестановки символов дешифровать зашифрованный файл. Для этого необходимо определить закон перестановки символов открытого текста. Создайте небольшой файл длиной в несколько слов с известным вам текстом, зашифруйте его, просмотрите гистограммы (опишите их; ответьте, можно ли извлечь из них полезную для дешифрации информацию). Сравните (с помошью редактора) ваш исходный и зашифрованный тексты и определите закон перестановки символов.

Дешифруйте файл:

  • вручную (объясните ваши действия);
  • с помошью программы.
  1. Для инверсного кодирования (по дополнению до 255):
  • выполните шифрование для своего произвольного файла;
  • просмотрите гистограммы исходного и зашифрованного текстов, опишите гистограммы и определите смешение для нескольких символов;
  • дешифруйте зашифрованный текст, проверьте в редакторе правильность дешифрования.

стр 24¶

  1. Для многоалфавитного шифрования с фиксированным ключом определите, сколько одноалфавитных методов и с каким смешением используется в программе. Для этого нужно создать свой файл, состоящий из строки одинаковых символов, выполнить для него шифрование и по гистограмме определить способ шифрования и набор смешений.

  2. Для многоалфавитного шифрования с ключом фиксированной длины:

  • выполните шифрование и определите по гистограмме, какое смешение получает каждый символ для файла, состоящего из строки одинаковых символов;
  • выполните шифрование и расшифрование для файла произвольного текста;
  • просмотрите и опишите гистограммы исходного и зашифрованного текстов; ответьте, какую информацию можно получить из гистограмм.
  1. Для многоалфавитного шифрования с произвольным паролем задание полностью аналогично п. 7.

  2. Привести в отчете ответы на контрольные вопросы в соответствии с номером варианта, указанным преподавателем (табл. 1.1).

Таблица 1.1.

Номер варианта Контролльные вопросы
1,5,7,3,9,18,28 Какие Вы знаете методы криптографической защиты файлов?
2,4,7,6,8,20,22,24,26,30 В чем преимущества и недостатки одноалфавитных методов?
11,13,15,10,17,19,27 Если необходимо зашифровать текст, содержащий важную информацию, какой метод из рассмотренных вы выберете? Обоснуйте свой выбор.
12,14,16,21,23,25,29 Целесообразно ли повторно применять для уже зашифрованного текста: а) метод многоалфавитного шифрования; б) метод Цезаря?

стр 25¶

ЛАБОРАТОРНАЯ РАБОТА № 2¶

ИССЛЕДОВАНИЕ РАЗЛИЧНЫХ МЕТОДОВ ЗАЩИТЫ ТЕКСТОВОЙ ИНФОРМАЦИИ И ИХ СТОЙКОСТИ НА ОСНОВЕ ПОДБОРА КЛЮЧЕЙ¶

Цель работы: изучение методов шифрования (расшифрования) перестановкой символов, подстановкой, гаммированием, использованием таблицы Виженера. Исследование и сравнение стойкости различных методов на основе атак путем перебора всех возможных ключей.

В лабораторной работе рассматривается способ вскрытия шифра, основанный на переборе всех вариантов ключа. Критерием правильности варианта служит наличие в тексте «вероятного слова». Перебирается множество всех возможных ключей, шифрованный текст расшифровывается на каждом ключе. В получившемся «псевдооткрытом» тексте ищется вероятное слово. Если такого слова нет, текущий текст бракуется и осуществляется переход к следующему ключу. Если такое слово найдено, на экран выводится вариант ключа. Затем перебор ключей продолжается до тех пор, пока не исчерпается все множество вариантов. Возможно обнаружение нескольких ключей, при которых в «псевдооткрытых текстах» имеется вероятное слово.

После завершения перебора необходимо расшифровать текст на найденных ключах. «Псевдооткрытый текст» выводится на экран для визуального контроля. Если оператор признает текст открытым, то работа по вскрытию заканчивается. Иначе данный вариант ключа бракуется и осуществляется переход к следующему ключу.

Описание лабораторной работы. Для выполнения лабораторной работы необходимо запустить программу LAB_RAB.exe, используемую для шифрования (расшифрования), а также дешифрования (методом протяжки вероятного слова) файлов.

Система реализует следующие функции:

  • ввод, удаление и селекция ключей пользователя;
  • поддержка списка ключей;
  • шифрование и расшифрование текста;
  • дешифрование текста путем подбора ключей, методом протяжки вероятного слова.

Система поддерживает следующие методы криптографического преобразования информации:

  • замена;
  • перестановка;
  • гаммирование;
  • таблица Виженеpa.

При запуске утилит шифрования и расшифрования у пользователя запрашивается подтверждение на правильность выбранного метола для работы и соответствия заланного ключа целям пользователя (также всегда при изменении файла в текстовом редакторе выдается за прос на сохранение изменений при кажлом шаге, дальнейшее развитие которого приведет к необратимым изменениям в файле и потере изначальной информации).

стр 26¶

Описание интерфейса:

  • окно текстового редактора с широким набором дополнительных функций;
  • таблица всех ключей, введенных в систему с быстрым доступом для ввода, удаления или выбора текущего ключа;
  • список всех методов шифрования для быстрого и удобного переключения между ними;
  • основное меню (вверху экрана);
  • дополнительное меню (вызывается нажатием правой кнопки мыши);
  • набор вспомогательных кнопок для быстрого и удобного интерфейса;

поля вывода текущего состояния системы:

  • текущий ключ,
  • вероятное слово,
  • сила ключа для протяжки.

Пример работы с программой

Внимание! Будьте внимательны при установке параметров работы, так как в процессе вычисления по ходу работы эти параметры изменить уже не удастся. После запуска программы абсолютно все рабочие поля пустые и необходимо провести первоначальные настройки для работоспособности системы.

Алгоритм работы с программой:

  • 1)вводится список ключей;
  • 2)вводится вероятное слово (необязательно вначале, до его ввода все меню запуска протяжки все равно недоступны);
  • 3)выбирается необходимый метод шифрования;
  • 4)загружается исходный или зашифрованный файл (открываются соответствующие меню для шифрования и расшифрования).
  • 5)запускается необходимый процесс: — шифрование,
  • расшифрование,
  • протяжка вероятного слова,
  • конвертация текста;
  • 6)продолжение работы в любом порядке в соответствии с описанными пунктами;
  • 7)при завершении работы не забудьте сохранить необходимые результаты (при закрытии и загрузке новых файлов система автоматически запрашивает подтверждение на запись).

СТР 27¶

Шифрование

  • 1)открыть файл
  • 2)внести необходимые изменения
  • 3)настроить соответствующие параметры тип шифрования и ключ
  • 4)Запустить процесс шифрования через пункт меню утилиты/зашифровать f5

Внимание! При шифровании файла все внесенные пользователем изменения до текущего момента времени будут сохранены на жестком диске.

Расшифрование.

  • 1.Открыть файл.
  • 2.Произвести необходимые изменения.
  • 3.Настроить соответствующие параметры: тип шифрования, пр.
  • 4.Запустить процесс расшифрования через пункт меню УТИЛИТЫ/РАСШИФРОВАТЬ F6.

Внимание! При расшифровании файла все проведенные пользователем изменения до текущего момента времени будут сохранены на жестком диске.

Протяжка вероятного слова (дешифрование) Внимание! Мощность ключа задастся заранее в опции «сила ключа»." Длина ключа значительно влияет на время протяжки вероятного слова (в худшем случае имеем дело с логарифмическим алгоритмом).

  • 1.Вводится вероятное слово (длиной от 1 (3) до 9).
  • 2.Для отделения вновь найденных ключей от предыдущих между ними добавляется надпись «подбор».
  • 3.Перебираются ключи.
  • 4.Расшифровывается вся первая строка текста по текущему ключу.
  • 5.Порциями, равными длине вероятного слова, сравнивается содержимое этой строки со значением вероятного слова.
  • 6.Если найдено хоть одно совпадение, запоминается ключ.
  • 7.Переход к новому ключу.
  • 8.Переход к следующей строке.
  • 9.Результаты должны содержаться и списке ключей. F-сли совпадений не найдено, в список ключей ничего не добавляется.

СТР 28¶

Операции с ключами. С базой ключей могут осуществляться следующие действия:

  • добавить новый ключ;
  • удалить одну запись;
  • изменить активную запись;
  • очистить всю таблицу введенных ключей.

Примечание. Под словами «работа с таблицей ключей» имеются в виду ключи, введенные для использования в двух методах (гаммирования и таблица Виженера).

Ключи для перестановки. В каждый момент времени в системе может быть только один текущий ключ для перестановки.

Правила ввода ключа для перестановки:

  • 1)при переключении в списке поддерживаемых системой методов шифрования на пункт «Перестановка» вызывается окно ввода ключа перестановки. Окно состоит из двух кнопок (ОТМЕНЫ и ВЫХОДА без изменений и кнопки ENTER — подтверждение установленной длины ключа) и окна задания длины ключа для перестановки;
  • 2)в окне задания длины ключа необходимо выбрать необходимую длину (параметры заменяются в пределах 1...9) и подтвердить желание использовать ключ именно такой длины;
  • 3)после подтверждения в окне высветятся кнопки с цифрами на лицевой стороне (в количестве, равном длине ключа), при нажатии на кнопку происходит фиксация кнопки (ее обесцвечивание) для невозможности ее дальнейшего использования (так как все цифры в ключе перестановки должны быть неповторяющимися);
  • 4)после перебора всех кнопок система запоминает введенный ключ, выводит его в поле ввода ключей и выходит из окна ввода ключа перестановки в окно основной программы.

Задание

  • 1.Ознакомиться с описанием лабораторной работы и кшанием.
  • 2.Выполнить настройку программы: выбрать метод шифрования, ввести ключи для всех методов, ввести вероятное слово, осуществить все остальные системные настройки.

СТР 29¶

  1. Для метода замены (одноалфавитного метода):
  • выбрать данный алгоритм в списке доступных методов шифрования;
  • установить необходимое смешение;
  • открыть произвольный файл;
  • просмотреть содержимое исходного файла;
  • выполнить для этого файла шифрование (при необходимости можно задать имя зашифрованного файла);
  • просмотреть в редакторе зашифрованный файл;
  • ввести вероятное слово;
  • ввести вероятную длину ключа (кроме метода замены);
  • подобрать ключ;
  • выполнить расшифрование со всеми найденными ключами;
  • найти в каком-либо из расшифрованных файлов правильно расшифрованное ключевое слово;
  • расшифровать файл исходным ключом;
  • проверить результат.
  1. Для метода перестановки:
  • выбрать метод перестановки;
  • в открывшемся окне ввода ключа перестановки символов указать сначала длину этого ключа, а затем из появившихся кнопок составить необходимую комбинацию для ключа, нажимая на кнопки в заданном порядке; при этом уже использованные кнопки становятся недоступными для предотвращения их повторного ввода;
  • далее действия полностью соответствуют изложенным в п. 3.
  1. Для метода гаммирования:
  • выбрать метод;
  • ввести ключ;
  • полностью повторить п. 3.
  1. Для таблицы Виженера все действия повторяются из п. 5 (метод1 гаммирования).

В отчете для каждого метода шифрования описывается последовательность выполняемых действий, указываются имена всех использованных файлов, исходные и найденные ключи, описывается процесс дешифрования.

Преподавателю предоставляется отчет о проделанной работе и все использованные файлы.

  1. Привести в отчете ответы на контрольные вопросы в соответствии с номером варианта, указанным преподавателем (табл. 1.2).

Таблица 1.1.

Номер варианта Контролльные вопросы
1,5,7,3,9,18,28 Чем отличается пссвдооткрытый текст (текст, полученный при расшифровке по ложному ключу) от настоящего откры того текста?
2,4,7,6,8,20,22,24,26,30 Как зависит время вскрытия шифра описанным выше способом подбора ключей от длины вероятного слова?
11,13,15,10,17,19,27 Зависит ли время вскрытия шифра гаммирования (или таб лицы Виженера) от мощности алфавита гаммы?
12,14,16,21,23,25,29 В чем недостатки метода дешифрования с использованием вероятностного слова?

СТР 30-31¶

ЛАБОРАТОРНАЯ РАБОТА № 3¶

ИЗУЧЕНИЕ УСТРОЙСТВА И ПРИНЦИПА РАБОТЫ ШИФРОВАЛЬНОЙ МАШИНЫ ЭНИГМА¶

Цель работы: изучение принципов шифрования (расшифрования) информации, используемых в шифровальной машине «Энигма* 0> накомленис с обшими принципами действия шифровальной машины •Энигма» на примере эмулятора. Предварительно необходимо установить программу-эмулятор Enigma3S.

Описание лабораторной работы. «Энигма» (Enigma)' - портативная

шифровальная машина, использовавшаяся для шифрования и расшифрования секретных сообщении (рис. 1.9). Более точно. «Энигма» — целое семейство электромеханических роторных машин, применявшихся с 1920-х гг. «Энигма» использовалась в коммерческих целях, а также в военных и государственных службах во многих странах мира, но наибольшее распространение получила в Германии во время Второй мировой войны. Именно «Энигма» Вермахта (Wfehrmacht Enigma), немецкая военная модель, чаше всего является предметом изучения.

image.png

Рис. 1.9. Внешний вил шифровальной машины -Энигма»

Хотя шифр «Энигмы» с точки зрения криптографии был достаточно слаб, но на практике лишь сочетание этого фактора с другими, такими как ошибки операторов, процедурные изъяны и захваты экземпляров «Энигмы» и шифровальных книг, позволило английским криптоаналитикам вскрывать сообшения, зашифрованные шифром «Энигмы».

На рисунке 1.10 показана электрическая схема машины «Энигма» для двух последовательно нажатых клавиш — ток течет через роторы.

Эмуляторы машины «Энигма* http://www.attlabs.att.co.uk/andyc/enigma

«отражается» от рефлектора, затем снопа пошрашается через роторы Буква «А» заменяется в шифротексте по разному при послслонатель пых нажатиях клавиши, сначала на . затем на С. Сигнал идет по другому маршруту за счет счет поворота ротора

стр 32¶

image.png

Рис. 1.10. Электрическая схема машины «Энигма» (замена в тексте буквы «А» буквой «D»)

Как и другие роторные машины, «Энигма» состояла из комбинации механических и электрических систем. Механическая часть включала клавиатуру, набор вращающихся дисков (роторов), расположенных вдоль вала, и ступенчатого механизма, обеспечивающего движение одной или более роторов при каждом нажатии клавиши. Движение роторов приводит к различным вариантам подстановки символов при каждом следующем нажатии клавиши на клавиатуре.

Механические части двигались, образуя меняющийся электрический контур, т.е. фактически шифрование осуществлялось электрически. При нажатии клавиш контур замыкался, ток проходил через

стр 33¶

различные компоненты и в итоге включал одну из множества лампочек, отображавшую выводимую букву Например, при шифровании сообщения, начинающегося ANX..., оператор вначале нажимал кнопку «А», и загоралась лампочка «Z», т.е. «Z» становилась первой буквой криптограммы. Оператор продолжал шифрование, нажимая на клавиатуре «N» и т.д., до конца исходного сообщения.

Постоянное изменение электрической пени, через которую протекал ток, вслеледствие вращения роторов позволяло реализовать многоатфавитный шифр подстановки, что давало высокую стойкость тиф рования для того времени.

Роторы. Роторы это сердце машины «Энигмы* (рис. 1.11). Каждый ротор представляет собой диск примерно 10 см в диаметре, сделанный из твердой резины или бакелита, с пружинными штыревыми контактами на одной стороне ротора, расположенными по окружности; на другой стороне ротора находится соответствующее количество плоских электрических контактов. Штыревые и плоские контакты соответствуют буквам в алфавите; обычно это 26 букв «А» - «Z». При соприкосновении контакты соседних роторов замыкают электрическую цепь. Внутри ротора каждый штыревой контакт соединен с некоторым плоским. Порядок соединения может быть различным.

image.png

Рис. I.II. Ротор машины «Энигмы»: о — левая сторона(видны плоские электрические контакты); б - правая сторона (видны штыревые контакты) ]

Сам по себе ротор воспроизводит шифрование простой заменой символов. Например, контакт, отвечающий за букву «Е», может быть соединен с контактом буквы .Т. на другой стороне ротора. При ис пользовании нескольких роторов в связке (обычно трех или четырех)

стр 34¶

за счет их постоянного движения получается более стойкий тип многоалфавитного шифрования.

Ротор может занимать одну из 26 позиций в машине. Он может быть повернут вручную при помощи рифленого пальцевого кол" сика, которое выдается наружу, как показано на рис. 1.12 Чтобы оператор всегда мог определить положение ротора, на каждом ободе находится алфавитное кольцо; одна из букв видна через окошко. В ранних моделях «Энигмы» алфавитное кольцо было фиксировано, в более поздних версиях ввели усложненную конструкцию с возможностью его регулировки. Каждый ротор содержит выемку (или несколько выемок), используемых для управления движением роторов. Три последовательно соединенных ротора изображены на рис 1.13.

image.png

Рис. 1.12. Ротор в разобранном виде: 1 — кольцо с выемками; 2 — маркирующая точка для контакта «А»; 3 —алфавитное кольцо; 4— залуженные контакты; 5— электропроводка; 6— штыревые контакты; 7— пружинный рычаг для настройки кольца; 5 — втулка; 9—пальцевое кольцо; 10— храповое колесо

Военные версии машины «Энигма» выпускались с несколькими роторами; первая модель содержала только три. В 1938 году их стало пять, но только три из них одновременно использовались в машине. Эти типы роторов были маркированы римскими цифрами I, И, III, IV, V, и все они были с одной выемкой, расположенной в разных местах алфавитного кольца. В военно-морских версиях Wehrmacht Enigma содержалось большее количество роторов, чем в других: шесть, семь или восемь.

стр 35 ¶

image.png

Рис. 1.13. Три последовательно соединенных ротора

В W'ehrmacht Enigma каждый ротор прикреплен к регулируемому кольцу с выемками. Пять базовых роторов (I—V) имели по одной выемке. тогда как военно-морские с дополнительными роторами (VI— VIII) — по две. В определенный момент выемка попадает напротив, собачки, позволяя и зацепить храповик следующего ротора при последующем нажатии клавиши. Когда же собачка не попадает в выемку, она просто проскальзывает по поверхности кольца, не цепляя шестеренки. В системе с одной выемкой второй ротор продвигается вперед на одну позицию в то время, как первый продвигается на 26. Аналогично третий ротор продвигается на один шаг в то время, как второй делает 26 шагов. Особенностью было то, что второй ротор также поворачивался, если поворачивался третий; это означает, что второй ротор мог повернуться дважды при двух последовательных нажатиях клавиш, так называемое «двухшаговое движение», что приводит к уменьшению периода при шифровании (рис. 1.14).

image.png

Рис. 1.14. Роторы энигмы к собранном состоянии. Три подвижных ротора помешены между двумя неподвижными деталями: входное кольцо и рефлектор (помечен «В» слева)

Входное колесо. Входное колесо (нем Eintritfswalze) машины «Энигма», или входной статор, соединяет коммутационную паш1Ь или (в случае eе отсутствия) клавиатуру и ламповую панель < роторами. Коммерческая версия «Энигмы соединяла буквы в гюрядке их следования на клавиатуре: OA. WB, EС и г.д. Однако в военной модели они соединялись в прямом алфавитном порядке: АЛ. ВВ, СС и т.д.

стр 37¶

Рефлектор. За исключением ранних, »а последним ротором уста нашивался рефлектор (нем. Umkehrwalze) запатентованная деталь, отличавшая семейство машин «Энигма» от других роторных машин, разработанных в то время. Рефлектор соединяет контакты последнего ротора попарно, коммутируя ток через роторы в обратном направлении. но по другому маршруту. Рефлектор гарантирует, что преобразование, реализуемое машиной, инволюция, т.е. процесс расшифрования. симметричен процессу шифрования. Кроме того, рефлектор гарантирует, что никакая буква не может быть зашифрована собой же. Это оказалось серьезным концептуальным недостатком, впоследствии использованным дешифратороващиками.

Коммутационная панель. Коммутационная панель, позволяющая оператору варьировать соединения проводов, впервые появилась в немецких военных моделях в 1930 г. и вскоре успешно использовалась и в машинах для военно-морских войск (рис. 1.15). Коммутационная панель внесла огромный вклад в усложнение шифра «Энигмы», даже больший, чем введение дополнительного ротора. С «Энигмой» без коммутационной панели дешифровальшик может справиться практически вручную, однако при использовании коммутационной панели взломщики были вынуждены конструировать специальные дешифровальные машины. Кабель, помещенный на коммутационную панель, соединяет буквы попарно, например «Е» и «Q» могут быть соединены в пару. Эффект состоит в перестановке этих букв до и после прохождения сигнала через роторы.

image.png

Рис. 1.15. Коммутационная панель «Энигмы»

стр 37¶

Например, когда оператор нажимал клавишу буквы «Е», сигнал направлялся в Q и только после этого уже во входной ротор. Одновременно могло использоваться несколько таких пар (до 13).Аксессуары. Удобной деталью, установленной на модели М4 «Энигма», был Schreibmax - маленькое печатающие устройство, которое могло печатать все 26 букв на небольшом листе бумаги.

Процедуры использования «Энигмы». Во время Второй мировой войны немецкие операторы использовали шифровальную книгу только для установки роторов и настроек колец. Для каждого сообщения они выбирали случайную стартовую позицию, например WZA, и случайный ключ сообщения, например SXT. Затем оператор устанавливал роторы в стартовую позицию WZA и шифровал ключ сообщения SXT. Предположим, что в результате шифрования ключа получится UHL. Далее оператор ставил ключ сообщения SXT как начальную позицию роторов и шифровал сообщение. После чего отправлял стартовую позицию WZA и зашифрованный ключ UHL вместе с сообщением. Получатель устанавливал стартовую позицию в соответствии с первой трехграммой WZA и, расшифровывая вторую триграмму UHL, распознавал исходный ключ SXT. Далее получатель использовал этот ключ как стартовую позицию для расшифровки сообщения. Обычно срок действия ключей составлял один день.

Военная модель «Энигма» использовала только 26 букв. Прочие символы заменялись редкими комбинациями букв. Пробел пропускался либо заменялся «X». Символ «X» также использовался для обозначения точки либо конца сообщения. Некоторые особые символы использовались в отдельных вооруженных частях, например, Wfehrmacht заменял запятую двумя символами ZZ и вопросительный знак — FRAGE либо FRAQ, a Kriegsmarine заменяла запятую — «Y» и вопросительный знак — UD. Два, три или четыре нуля заменялись CENTA, MILLE и MYRIA соответственно.

При выполнении лабораторной работы для исследования шифр^ ♦Энигмы» используется программа-эмулятор Enigma3S. Задание:

  • Запустить эмулятор Энигмы Enigma3S из папки, указанной подавателем. Ознакомиться с файлом справки: опция меню HELP
  • В меню программы выбрать пункт SETTINGS/RESET (рис. 1.16).

стр 38¶

image.png

Рис. 1.16. Начальные установки эмулятора «Энигмы»

3) Установить значения для колец 01 01 01 путем выбора пункта меню VIEW/OPEN COVER. В меню SETTINGS/INNER SETTINGS установить следующие значения Reflector - В, Lert - I, Middle - II Right - III. Ringstellung - A-A-A (рис. 1.17, 1.18). Будем считать данное положение начальным.

image.png

Рис. 1.17. Просмотр начальных установок

image.png

Рис. 1.18. Установки Reflector, Left, Mid, Right

СТР 39¶

  • 4 Ввести ня клавиатуре .Энигма. сообщение SECRET MESSAGE Какое сообщение получено на выходе?
  • 5 повторить п 3. изменив настройки Ringstellung -А-А-А на Ringstellung — А-В-С
  • 6 Ввести на клавиатуре .Энигма» сообщение SECRET MESSAGE Какое сообщение получено на выходе? Насколько оно отличается от сообщения, полученного в п. 4?
  • 7 Сохранить полученный в п. 6 шифротскст при помощи опции меню FILE/SAVE СТ AS (рис. 1.19).

image.png

  • 8.Создать в корне папки с программой эмулятором файл с расширением .pin, открывать его для редактирования в блокноте и записать в него открытый текст для шифрования.
  • 9.В меню программы выбрать опцию FILE/OPEN РТ и файл, созданный в пункте 9. Получить шифротекст из открытого текста, выбраз опцию меню OPTIONS/ENCIPHER TEXT.
  • 10.Установить эмулятор в начальное положение. В меню программы выбрать пункт WINDOW/SCRAMBLER. Ввести при «помощи клавиатуры произвольное сообщение из 22 символов (варианты указаны в табл. 1.3), обращая внимание на положение колец Ввести последовательность из 22 символов еще раз. Как изменилось положение колец? Отличается ли новая зашифрованная по следовательность от начальной? Почему изменилась выходи последовательность?
  • 11.Используя окно SCRAMBLER, проследить за тем, как изменяется шифротекст в зависимости от настройки положения контных колес. Что дает возможность настройки порядка следования контактных колес?
  • 12.Вокне программы выбрать опцию VIEW/RIGHT (рис 1.20 Заполнить таблицу соответствия дли пяти буки (варианты указаны в табл. 1.4) для 12 первых угловых положений правого колеса.

СТР 40¶

image.png

Номер вариантаИсходный алфавит
1, 5, 9, 13, 17QRTYU FBNAK GHERL ADLKE DS
2, 6, 10, 14, 18, 22UIERT PAEVC DSNCY OPLKD BV
3, 7, 11, 15, 19, 23, 27UIFGH KLBVQ FDIIT QKJLS DB
4, 8, 12, 16, 20, 24, 28LLWER TYYWV BAFDP WRTOPF JK
21, 25, 29, 26, 30OPJHG JFDPJ GFDSK LDFHU BX
Номер вариантаИсходный алфавит___________
Буквы на входе123456789101112
_____________

Рис. 1.20. Просмотр установок для выполнения задания

  1. Зная, что эмулятор установлен в начальное положение, расшифровать текст в соответствии с номером варианта, указанным преподавателем (варианты контрольных заданий указаны в табл. 1.5, 1.6.
Таблица 1.5
Номер вариантаШифротекст
1, 5, 9, 13, 17ABCDE
2, 6, 10, 14, 18, 22FGHIJK
3, 7, 11, 15, 19, 23, 27LMNOP
4, 8, 12, 16, 20, 24, 28QRSTU
21, 25, 29, 26, 30VWXYZ
____
Таблица 1.6
Номер вариантаШифротекст
1, 5, 9, 13, 17FQGAH WABUN NL
2, 6, 10, 14, 18, 22QIKOL RCRJS EGBSS X
3, 7, 11, 15, 19, 23, 27OOKWE PRFMI M
4, 8, 12, 16, 20, 24, 28KIXDI ACTHJ L
21, 25, 29, 26, 30XLXOO EABUN NL

СТР 41¶

СТР 42¶

ЛАБОРАТОРНАЯ РАБОТА № 4

СТАНДАРТ СИММЕТРИЧНОГО ШИФРОВАНИЯ AES RIJNDAEL

Цель работы ознакомление с принципами шифрования, используемыми и алгоритме симметричного шифрования AES RIJNDAEL. Описание лабораторной работы. Демонстрационная версии крипто стойкого блочного алгоритма Rijndael. Состояние, ключ шифрования и число циклов. Rijndael - итеративный блочный шифр, имеющий переменную длину блоков и различные длины ключей. Длина ключа и длина блока могут независимо друг от друга составлять 128, 192 или 256 бит.

Разнообразные преобразования работают с промежуточным результатом, называемым состоянием (State). Состояние можно представить в виде прямоугольного массива байтов. Этот массив имеет четыре строки, а число столбцов обозначается Nb и равно длине блока, деленной на 32.

Ключ шифрования также представлен в виде прямоугольного массива с четырьмя строками. Число столбцов обозначено как Nk и равно длине ключа, деленной на 32 (рис. 1.21).

В некоторых случаях ключ шифрования изображается в виде линейного массива четырехбайтовых слов. Слова состоят из четырех байтов, которые находятся в одном столбце (при представлении в виде прямоугольного массива).

a0,0a0,1a0,2a0,3a0,4a0,5
a1,0a1,1a1,2a1,3a1,4a1,5
a2,0a2,1a2,2a2,3a2,4a2,5
a3,0a3,1a3,2a3,3a3,4a3,5
_____
k0,0k0,1k0,2k0,3
k1,0k1,1k1,2k1,3
k2,0k2,1k2,2k2,3
k3,0k3,1k3,2k3,3

Рис. 1.21. Пример представления состояния (Nb = 6) и ключа шифрования (Nk = 4)

Входные данные для шифра обозначаются как байты состояния в порядке a00, а10, а21, a30, a01 а11,.... После завершения действия шифра выходные данные получаются из байтов состояния в том же порядке.

СТР 43¶

Число циклов, обозначается Nr, зависит от значений Nb b Nk (табл. 1.7.)

NrNb=4Nb=6Nb=8
Nk=4101214
Nk=6121214
Nk=8141414

Цикловое преобразование. цикловое преобразование состоит из четырех различных преобразований. На языке псевдо - Си оно имеет следующий вид:

In [1]:
Round (State, RoundKey)
{
    ByteSub(State);// замена байт
    ShiftRow(State);// сдвиг строк
    MixColumn(State);// замешивание столбцов
    AddRoundKey(State, RoundKey);//Добавление цифрового ключа
}
  Cell In[1], line 3
    ByteSub(State);// замена байт
                  ^
SyntaxError: invalid syntax

Последний цикл шифра немного отличается:

In [ ]:
FinalRound(State, RoundKey)
{
    ByteSub(State);// замена байт
    ShiftRow(State);// сдвиг строк
    AddRoundKey(State, RoundKey);//  добавление циклового ключа
}

Отметим что последний цикл отличается от простого цикла только отсутствием замещаемых столбцов. Каждое из приведенных преобразований подробно рассмотренно далее.

Замена байт (ByteSub). Преобразование ByteSub - нелинейная замена байт, выполняемая независимо с каждым байтом состояния (рис. 1.22).

стр 44¶

a0,0a0,1a0,2a0,3a0,4a0,5
a1,0a1,1a1,2a1,3a1,4a1,5
a2,0a2,1a2,2a2,3a2,4a2,5
a3,0a3,1a3,2a3,3a3,4a3,5
=>ai,j=>S-box=>bi,j=>
b0,0b0,1b0,2b0,3b0,4b0,5
b1,0b1,1b1,2b1,3b1,4b1,5
b2,0b2,1b2,2b2,3b2,4b2,5
b3,0b3,1b3,2b3,3b3,4b3,5

Рис. 1.22. BytcSub действует на каждый байт состояния

Замена происходит по массиву SboxE при шифровании и по массиву SboxD при расшифровании, причем SboxD[ SboxE[ a ]] = а. На языке пссадо-Си это выглядит следующим облазом:

SboxE = ( 0x63, 0x7C, 0x77, 0x7B, OxF2, 0x6B, 0x6F, 0xC5, 0x30, 0x01, 0x67, 0x2B, OxFE, 0xD7, OxAB. 0x76, OxCA, 0x82, 0xC9, 0x7D, OxFA, 0x59, 0x47, OxFO, OxAD, 0xD4, 0хA2, ОхАF, 0х9С, 0хА4, 0х72, 0хC0, 0кВ7, OxFD, 0x93, 0x26, 0x36, Ox3F, 0xF7, OxCC, 0x34, ОхА5, OxES, OxF1, 0x71. 0xD8, 0x31, 0x15, 0x04, 0хС7, 0x23, ОхСЗ, 0x18, 0x96, 0x05, 0х9А, 0x07, 0x12, 0x80, 0хЕ2, ОхЕВ, 0x27, 0хВ2, 0x75, 0x09, 0x83, 0x2C, Ox1A, 0x1В, ОхбЕ, 0x5A, OxAO, 0x52, ОхЗВ, 0x06, ОхВЗ, 0x29, ОхЕЗ, 0x2F, 0x84, 0x53, 0x01, 0x00, OxED, 0x20, OxFC, OxB1, 0x5В, 0x6A, OxCB, OxBE, 0x39, 0х4А, 0х4С, 0x58, OxCF, ОхDО, OxEF, OxAA, OxFB, 0x43, 0x4D, 0x33, 0x85, 0x45, ОхF9, 0x02, 0x7F, 0x50, ОхЗС, Ox9F, 0хА8, 0x51, ОхАЗ, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, OxBC, 0xB6, OxDA, 0x21, 0x10, OxFF, 0xF3, 0xD2, OxCD, OxOC, 0x13, OxEC, 0x5F, 0x97, 0x44, 0x17, ОхС4, 0хА7, 0х7Е, 0x3D, 0x64, 0x5D, 0x19, 0x73, 0x60, 0x81, 0x4F, OxDC, 0x22, 0x2A, 0x90, 0x88, 0x46, OxEE, 0хВ8, 0x14, OxDE, Ох5Е, ОхОВ, OxDB, OxEO, 0x32, ОхЗА, 0хОА, 0x49, 0x06, 0x24, 0х5С, 0хС2, 0x03, ОхАС, 0x62, 0x91, 0x95, 0хЕ4. 0x79, 0хЕ7, ОхС8, 0x37, 0x6D, 0x8D, 0xD5, 0x4E, 0xA9, 0x6C, 0x56, 0xF4, 0xEA, 0x65, 0x7A, 0xAE, 0x08, 0xBA, 0x78, 0x25, 0x2E, 0x1C, 0xA6, 0xB4, 0xC6, 0xE8, 0xDD, 0x74, 0x1F, 0x4B, 0xBD, 0x8B, 0x8A, 0x70, 0x3E, 0xB5, 0x66, 0x48, 0x03, 0xF6, 0x0E, 0x61, 0x35, 0x57, 0xB9, 0x86, 0xC1, 0x1D, 0x9E, 0xE1, 0xF8, 0x98, 0x11, 0x69, 0xD9, 0x8E, 0x94, 0x9B, 0x1E, 0x87, 0xE9, 0xCE, 0x55, 0x28, 0xDF, 0x8C, 0xA1, 0x89, 0x0D, 0xBF, 0xE6, 0x42, 0x68, 0x41, 0x99, 0x2D, 0x0F, 0xB0, 0x54, 0xBB, 0x16 };

стр 45 ¶

SboxD={ 0x52, 0x09, 0x6A, 0xD5, 0x30, 0x36, 0xA5, 0x38, 0xBF, 0x40, 0xA3, 0x9E, 0x81, 0xF3, 0xD7, 0xFB, 0x7C, 0xE3, 0x39, 0x82, 0x9B, 0x2F, 0xFF, 0x87, 0x34, 0x8E, 0x43, 0x44, 0xC4, 0xDE, 0xE9, 0xCB, 0x54, 0x7B, 0x94, 0x32, 0xA6, 0xC2, 0x23, 0x3D, 0xFE, 0x4C, 0x95, 0x0B, 0x42, 0xFA, 0xC3, 0x4E, 0x08, 0x2E, 0xA1, 0x66, 0x28, 0xD9, 0x24, 0xB2, 0x76, 0x5B, 0xA2, 0x49, 0x6D, 0x8B, 0xD1, 0x25, 0x72, 0xF8, 0xF6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xD4, 0xA4, 0x5C, 0xCC, 0x5D, 0x65, 0xB6, 0x92, 0x6C, 0x70, 0x48, 0x50, 0xFD, 0xED, 0xB9, 0xDA, 0x5E, 0x15, 0x46, 0x57, 0xA7, 0x8D, 0x9D, 0x84, 0x90, 0xD8, 0xAB, 0x00, 0x8C, 0xBC, 0xD3, 0x0A, 0xF7, 0xE4, 0x58, 0x05, 0xB8, 0xB3, 0x45, 0x06, 0xD0, 0x2C, 0x1E, 0x8F, 0xCA, 0x3F, 0x0F, 0x02, 0xC1, 0xAF, 0xBD, 0x03, 0x01, 0x13, 0x8A, 0x6B, 0x3A, 0x91, 0x11, 0x41, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0x4F, 0x67, 0xDC, 0xEA, 0x97, 0xF2, 0xCF, 0xCE, 0xF0, 0xB4, 0xE6, 0x73, 0x96, 0xAC, 0x74, 0x22, 0xE7, 0xAD, 0x35, 0x85, 0xE2, 0xF9, 0x37, 0xE8, 0x1C, 0x75, 0xDF, 0x6E, 0x47, 0xF1, 0x1A, 0x71, 0x1D, 0x29, 0xC5, 0x89, 0x6F, 0xB7, 0xB2, 0x0E, 0xAA, 0x18, 0xBE, 0x1B, 0xFC, 0x56, 0x3E, 0x4B, 0xC6, 0xD2, 0x79, 0x20, 0x9A, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x07, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, 0xDB, 0xC0, 0xFE, 0x78, 0xCD, 0x5A, 0xF4, 0x1F, 0xDD, 0xA8, 0x33, 0x88, 0x97, 0xC7, 0x31, 0xB1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xEC, 0x5F, 0x60, 0x51, 0x7F, 0xA9, 0x19, 0xB5, 0x4A, 0x0D, 0x2D, OxE5, Ox7A, Ox9F, Ox93, OxC9, Ox9C, OxEF, 0xA0, 0xE0, 0x3B, 0x4D, 0xAE, 0x2A, 0xF5, 0xB0, 0xC8, 0xEB, 0xBB, 0x3C, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x17, 0x2B, 0x04, 0x7E, 0xBA, 0x77, 0xD6, 0x26, 0xE1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0C, 0x7D };

Преобразование сдвига строк (Shift Row). Последние три строки состояния циклически сдвигаются на различное число байт. Строка 1 сдвигается на C1 байт, строка 2 - на С2 байт и строка 3 - на СЗ байт. Значения сдвигов С1,С2 и СЗ зависят от длины блока Nb. Их величины приведены в табл. 1.8.

Табл 1.8

NbC1C2C3
4123
6123
8134

Операция сдвига последних трех строк состояния на определенную величину обозначена Shift Row (State). На рисунке 1.23 показано влияние преобразования на состояние.

mnop......
jkl.........
def.........
wxyz......
=>Без сдвига=>
=>Циклический сдвиг в право (ROR 1)=>
=>Циклический сдвиг в право (ROR 2)=>
=>Циклический сдвиг в право (ROR 3)=>
mnop......
...jkl......
......def...
.........wxy

Рис. 1.23. Схема преобразования ShiftRow

При расшифровании происходит сдвиг на то же число элементов в обратном направлении.

Преобразование замешивания столбцов (MlxColumn). Преобразование представляет собой умножение состояния на матрицу ME при шифровании или матрицу МП при расшифровании:

стр 48¶

___ME
___ME
2311
1231
1123
3112
⊗
⊗
⊗
⊗
⊗
⊗
State___
State___
b1b5b9b13
b2b6b10b14
b3b7b11b15
b4b8b12b16

b1 = ( b1 2 ) XOR ( b2 3 ) XOR ( b3 1 ) XOR ( b4 1 )

Умножение двух байт выполняется по следуюшему алгоритму:

  • если один из байт равен 0, результатом будет 0;
  • если один из байт равен 1, результатом будет другой байт;
  • в остальных случаях происходит замена каждого байта по таблице 1... Замененные байты складываются, при необходимости вычитается 255 для попадания в интервал [0, 255) и происходит замена по таблице Е, что и дает результат. На языке псевдо-Си таблицы L и Е имеют следующий вид:

L={, 0x00, 0x19, 0x01, 0x32, 0x02, 0x1A, 0xC6, 0x4B, 0xC7, 0x1B, 0x68, 0x33, 0xEE, 0xDF, 0x03, 0x64, 0x04, 0xE0, 0x0E, 0x34, 0x8D, 0x81, 0xEF, 0x4C, 0x71, 0x08, 0xC8, 0xF8, 0x69, 0x1C, 0xC1, 0x7D, 0xC2, 0x1D, 0xB5, 0xF9, 0xB9, 0x27, 0x6A, 0x4D, 0xE4, 0xA6, 0x72, 0x9A, 0xC9, 0x09, 0x78,, 0x65, 0x2F, 0x8A, 0x05, 0x21, 0x0F, 0xE1, 0x24, 0x12, 0xF0, 0x82, 0x45, 0x35, 0x93, 0xDA, 0x8E, 0x96, 0x8F, 0xDB, 0xBD, 0x36, 0xD0, 0xCE, 0x94, 0x13, 0x5C, 0xD2, 0xF1, 0x40, 0x46, 0x83, 0x38, 0x66, 0xDD, 0xFD, 0x30, 0xBF, 0x06, 0x8B, 0x62, 0xB3, 0x25, 0xE2, 0x98, 0x22, 0x88, 0x91, 0x10, 0x7E, 0x6E, 0x48, 0xC3, 0xA3, 0xB6, 0x1E, 0x42, 0x3A, 0x6B, 0x28, 0x54, 0xFA, 0x85, 0x3D, 0xBA, 0x2B, 0x79, 0x0A, 0x15, 0x9B, 0x9F, 0x5E, 0xCA, 0x4E, 0xD4, 0xAC, 0xE5, 0xF3, 0x73, 0xA7, 0x57, 0xAF, 0x58, 0xA8, 0x50, 0xF4, 0xEA, 0xD6, 0x74, 0x4F, 0xAE, 0xE9, 0xD5, 0xE7, 0xE6, 0xAD, 0xE8, 0x2C, 0xD7, 0x75, 0x7A, 0xEB, 0x16, 0x0B, 0xF5, 0x59, 0xCB, 0x5F, 0xB0, 0x9C, 0xA9, 0x51, 0xA0, 0x7F, 0x0C, 0xF6, 0x6F, 0x17, 0xC4, 0x49, 0xEC, 0xD8, 0x43, 0x1F, 0x2D, 0xA4, 0x76, 0x7B, 0xB7, 0xCC, 0xBB, 0x3E, 0x5A, 0xFB, 0x60, 0xB1, 0x86, 0x3B, 0x52, 0xA1, 0x6C, 0xAA, 0x55, 0x29, 0x9D, 0x97, 0xB2, 0x87, 0x90, 0x61, 0xBE, 0xDC, 0xFC, 0xBC, 0x95, 0xCF, 0xCD, 0x37, 0x3F, 0x5B, 0xD1, 0x53, 0x39, 0x84, 0x3C, 0x41, 0xA2, 0x6D, 0x47, 0x14, 0x2A, 0x9E, 0x5D, 0x56, 0xF2, 0xD3, 0xAB, 0x44, 0x11, 0x92, 0xD9, 0x23, 0x20, 0x2E, 0x89, 0xB4, 0x7C, 0xB8, 0x26, 0x77, 0x99, 0xE3, 0xA5, 0x67, 0x4A, 0xED, 0xDE, 0xC5, 0x31, 0xFE, 0x18, 0x0D, 0x63, 0x8C, 0x80, 0xC0, 0xF7, 0x70, 0x07};

E = {0x01, 0x03, 0x05, 0x0F, 0x11, 0x33, 0x55, 0xFF, 0x1A, 0x2E, 0x72, 0x96, 0xA1, 0xF8, 0x13, 0x35, 0x5F, 0xE1, 0x38, 0x48, 0xD8, 0x73, 0x95, 0xA4, 0xF7, 0x02, 0x06, 0x0A, 0x1E, 0x22, 0x66, 0xAA, 0xE5, 0x34, 0x5C, 0xE4, 0x37, 0x59, 0xEB, 0x26, 0x6A, 0xBE, 0xD9, 0x70, 0x90, 0xAB, 0xE6, 0x31, 0x53, 0xF5, 0x04, 0x0C, 0x14, 0x3C, 0x44, 0xCC, 0x4F, 0xD1, 0x68, 0xB8, 0xD3, 0x6E, 0xB2, 0xCD, 0x4C, 0xD4, 0x67, 0xA9, 0xE0, 0x3B, 0x4D, 0xD7, 0x62, 0xA6, 0xF1, 0x08, 0x18, 0x28, 0x78, 0x88, 0x83, 0x9E, 0xB9, 0xD0, 0x6B, 0xBD, 0xDC, 0x7F, 0x81, 0x98, 0xB3, 0xCE, 0x49, 0xDB, 0x76, 0x9A, 0xB5, 0xC4, 0x57, 0xF9, 0x10, 0x30, 0x50, 0xF0, 0x0B, 0x1D, 0x27, 0x69, 0xBB, 0xD6, 0x61, 0xA3, 0xFE, 0x19, 0x2B, 0x7D, 0x87, 0x92, 0xAD, 0xEC, 0x2F, 0x71, 0x93, 0xAE, 0xE9, 0x20, 0x60, 0xA0, 0xFB, 0x16, 0x3A, 0x4E, 0xD2, 0x6D, 0xB7, 0xC2, 0x5D, 0xE7, 0x32, 0x56, 0xFA, 0x15, 0x3F, 0x41, 0xC3, 0x5E, 0xE2, 0x3D, 0x47, 0xC9, 0x40, 0xC0, 0x5B, 0xED, 0x2C, 0x74, 0x9C, 0xBF, 0xDA, 0x75, 0x9F, 0xBA, 0xD5, 0x64, 0xAC, 0xEF, 0x2A, 0x7E, 0x82, 0x9D, 0xBC, 0xDF, 0x7A, 0x8E, 0x89, 0x80, 0x9B, 0xB6, 0xC1, 0x58, 0xE8, 0x23, 0x65, 0xAF, 0xEA, 0x25, 0x6F, 0xB1, 0xC8, 0x43, 0xC5, 0x54, 0xFC, 0x1F, 0x21, 0x63, 0xA5, 0xF4, 0x07, 0x09, 0x1B, 0x2D, 0x77, 0x99, 0xB0, 0xCB, 0x46, 0xCA, 0x45, 0xCF, 0x4A, 0xDE, 0x79, 0x8B, 0x86, 0x91, 0xA8, 0xE3, 0x3E, 0x42, 0xC6, 0x51, 0xF3, 0x0E, 0x12, 0x36, 0x5A, 0xEE, 0x29, 0x7B, 0x8D, 0x8C, 0x8F, 0x8A, 0x85, 0x94, 0xA7, 0xF2, 0x0D, 0x17, 0x39, 0x4B, 0xDD, 0x7C, 0x84, 0x97, 0xA2, 0xFD, 0x1C, 0x24, 0x6C, 0xB4, 0xC7, 0x52, 0xF6, 0x01};

стр 49¶

Добавление циклового ключа. Цикловой ключ добавляется к состоя мню посредством простого EXOR (рис. 1.24) Цикловой ключ выра батывастся из ключа шифрования посредством алгоритма выработки ключей (key schedule). Длина циклового ключа равна длине блока Nb.

a0,0a0,1a0,2a0,3a0,4a0,5
a1,0a1,1a1,2a1,3a1,4a1,5
a2,0a2,1a2,2a2,3a2,4a2,5
a3,0a3,1a3,2a3,3a3,4a3,5
⊗
k0,0k0,1k0,2k0,3k0,4k0,5
k1,0k1,1k1,2k1,3k1,4k1,5
k2,0k2,1k2,2k2,3k2,4k2,5
k3,0k3,1k3,2k3,3k3,4k3,5
=
b0,0b0,1b0,2b0,3b0,4b0,5
b1,0b1,1b1,2b1,3b1,4b1,5
b2,0b2,1b2,2b2,3b2,4b2,5
b3,0b3,1b3,2b3,3b3,4b3,5

При шифровании части расширенного ключа выбираются от начала к концу, при расшифровании — от конца к началу.

Расширение ключа (Key Expansion). Расширенный ключ представляет собой линейный массив четырех байтовых слов и обозначается W(Nb*(Nr + 1)). Первые Nk слов содержат ключ шифрования. Все остальные слова определяются рекурсивно из слов с меньшими ин дексами. Алгоритм выработки ключей зависит от величины Nk Ниже приведена версия для Nk <= 6 и версия для Nk > 6: ■ для Nk < 6 или Nk - 6

In [3]:
KeyExpansion(CipherKey,W)
{
    for (i=0;i<Nk;i++)W[i]=CipherKey[i];
    for (j=Nk; j<Nb*(Nk+1);j+=Nk)
    {
        W[j]=W[j/Nk]^SubByte(Rotl(W[j-1]))^Rcon[j/Nk];
        for (i=1;i<Nk&&i+j<Nb*(Nr+1);i++)
            W[i+j]=W[i+j-Nk]^W[i+j-1];
    }
}
  Cell In[3], line 3
    for (i=0;i<Nk;i++)W[i]=CipherKey[i];
    ^
SyntaxError: invalid syntax

Можно заметить, что первые Nk слов заполняются ключом шифрования. Каждое последующее слово W[i] получается посредством EXOR предыдущего слова W[i - 1] и слова, на Nk позиций ранее W[i-Nk]. Для слов, позиция которых кратна Nk. перед EXOR применяется преобразование к W[i - 1]. а затем еще прибавляется цикловая константа. Преобразование содержит циклический сдвиг байтов в слове,обозначенный как Rotl, затем следует SubByte - применение замены байт ■ для Nk > 6

In [3]:
KeyExpansion (CipherKey, W)
{
    for (i=0; i<Nk;i++)W[i]=CipherKey(i);
    for (j=Nk; j<Nb*(Nk+l); j+=Nk)
    {
        W[j] = W [j-Nk] ^ SubByte(Rotl(W[j-1]))^Rcon[j/Nk];
        for (i=1;i<4;i++) W[i+j]=W[i+j-Nk]^W[i+j-1];
        W[j+4] = W[J+4-Nk]^SubByte(W[j+3]);
        for (i=5;i<Nk;i++) W[i+j]=W[i+j-Nk]^W[i+j-1];
    }
}
  Cell In[3], line 3
    for (i=0; i<Nk;i++)W[i]=CipherKey(i);
    ^
SyntaxError: invalid syntax

Отличие для схемы при Nk > 6 состоит в применении SubByte для каждого четвертого байта из Nk. Цикловая константа независит от Nk и определяется следующим образом: Rcon[i] = ( RC[i], '00' , '00' , 00 ), где RC[0]= 'о1'; RC[i]= xtime(Rcon[i-1]); Шифрование. Шифр Rijndael включается следующие преобразования:

  • начальное добавление циклового ключа;
  • Nr-1 циклов;
  • заключительный цикл На языке псевдо Си это выглядит следующим образом

стр 51¶

In [6]:
Rijndael (State, CiphorKry)
{
    KeyExpansion(CipherKey, ExpandedKey); // Расширение ключа
    AddRoundKey(State, ExpandedKey); // Добавление циклового ключа
    For ( i=1 ; i<Nr ; i++ ) Round (State, ExpandedKey+Nb*i);// циклы
    FinalRound(State, ExpandedKey+Nb*Nr); // заключительный цикл
}
  Cell In[6], line 3
    KeyExpansion(CipherKey, ExpandedKey); // Расширение ключа
                                        ^
SyntaxError: invalid syntax

Если предварительно выполнена процедура расширения ключа, то процедура будет иметь следующий вид:

In [ ]:
Rijndael(State, CipherKey)
{
    AddRoundKey(State, ExpandedKey);
    For ( i=1 ; i<Nr ; i++) Round (State, ExpandedKey+Nb*i);
    FinalRound(State, ExpandedKey+Nb*Nr);
}

Описание демонстрационной программы. Программа выполнена на языке С# и состоит из двух элементов — файла Rijndael.dJJ, содержащего реализацию алгоритма шифрования, и демонетрацвонного приложения RijndaclDemo.exe. Для работы приложения необходима ОС Windows с установленным .NET Framework v1.1.

В основном окне демоне демонстрационной программы задаются длина ключа, длина блока, а также расширенный ключ шифрованна, вычисляемый в соответствии с заданным ключом шифрования (рис. 1.25,1.26).

Можно подробно рассмотреть действие всех цикловых преобразований (ByteSub, Shift Row, MixColumn, AddRoundKey) как при шифровании, так и при расшифровании (рис. 1.27, 1.28).

стр 52¶

image.png

Рис. 1.25. Главное окно демонстрационной программы

Расширенный ключ¶

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
D6 AA 74 FD D2 AF 72 FA DA A6 78 F1 D6 AB 76 FE
B6 92 CF 0B 64 3D BD F1 BE 9B C5 00 68 30 B3 FE
B6 FF 74 4E D2 C2 C9 DF 6C 59 0C BF 04 69 BF 41
47 F7 F7 BC 95 35 3E 03 F9 6C 32 BC FD 05 8D FD
3C AA A3 E8 A9 9F 9D EB 50 F3 AF 57 AD F6 22 AA
5E 39 0F D F7 A6 92 96 A7 55 3D C1 0A A3 1F 6B
14 F9 70 1A E3 5F E2 8C 44 0A DF 4D 4E A9 C0 26
47 43 87 35 A4 1C 65 B9 E0 16 BA F4 AE BF 7A D2
54 99 32 D1 F0 85 57 68 10 93 ED 9C BE 2C 97 4E
13 11 1D 7F E3 94 4A 17 F3 07 A7 8B 4D 2B 30 C5

Рис. 1.26. Окно расширенного ключа

image.png

Рис. 1.27. Окна преобразований ByteSub и ShiftRow

При шифровании предлагается выбрать исходный файл и файл, куда будет помешен результат шифрования, при расшифровании -соответственно зашифрованный файл и файл, предназначенный для помешения результата расшифрования. В процессе используются указанный в главном окне программы ключ шифрования и длины ключа и блока.

стр 53


image.png

Рис. 1.28. Окна преобразований MixColumn и AddRoundKey

Задание

  • 1.Ознакомиться со сведениями о программе RijndaelDemo. Запустить модуль RijndaelDemo.exe .
  • 2.Изучить на примере обычных текстовых файлов способы шиф ровяния и расшифровании с помощью алгортма Rijndael. Подробно рассмотреть действие всех цикловых преобразований (ByteSub, ShiftRow, MixColumn, AddRoundKey) как при шифровании, так и расшифровании. Исходный текст для шифрования может быть подготовлен заранее и сохранен в файле *.txt
  • 3.Сохранить в отчете эеранные формы, демонстрирующие процесс шифрования и расшифровывания информации, проанализировать полученные результаты.
  • 4.Включить в отчет о лабораторной работе ответы на контрольные заданий, выбранные в соответствии с номером варианта, указанным преподавателем (табл. 1.9).
  • Номер варианта и контрольные задания
  • 1, 5, 7, 26 - Сравнить отсновные характеристики алгоритмов Rijndael и ГОСТ 28147-89
  • 2, 4, 6 - Сравнить отсновные характеристики алгоритмов Rijndael и DES
  • 11, 13 - Описать структуру сети Фейстеля
  • 12, 14, 16 - Привести обобщенные схемы шифрования данных с помощью алгоритма Rijndael и ГОСТ 28147-89. Дать их сравнительный анализ.
  • 3, 9, 18, 29 - Сравнить один раунд шифрования данных с помощью алгоритма Rijndael и ГОСТ 28147-89.

стр 54¶

  • Номер варианта и контрольные задания
  • 20, 22, 24 - Сравнить эквивалентность прямого и обратного преобразований в алгоритмах Rijndael и ГОСТ 28147-89
  • 10, 17, 19 - Сравнить выработку ключевой информации в алгоритмах Rijndael и ГОСТ 28147-89
  • 21, 23, 25 - Сравнить алгоритмы Rijndael и ГОСТ 28147-89 по показателям диффузии
  • 8, 28, 27 - Сравнить алгоритмы Rijndael и ГОСТ 28147-89 по показателям стойкости
  • 12, 15, 30 - Сравнить алгоритмы Rijndael и ГОСТ 28147-89 по показателям производительности и удобству реализации

Список литературы

  • 1.Бабаш А.В. Криптографические и теоретико-автоматные аспекты современной защиты информации. Криптографические методы зашиты. М.: Изд. центр ЕАОИ, 2009.
  • 2.Бабаш А.В., ШанкинГЛ. Криптография/под редакцией В.П. Шер-стюка, Э.А. Применко. М.: СОЛОН-Р, 2007.
  • 3.Баранова Е.К. Эффективное кодирование и защита информации: Текст лекций для студентов специальности 510200. М.: МГУЛ, 2002.
  • 4.Мельников В.В. Защита информации в компьютерных системах. М.: Финансы и статистика ; Электроинформ, 1997.
  • 5.Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. М.: Радио и связь, 2001.
    1. (март //. Криптография. М.: Техносфера, 2006.

ЧАСТЬ 2

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Асимметричные системы шифрования. Смысл асимметричных криптосистем (системы открытого шифрования с открыт ым ключом—public key systems) состоит в том, что для зашифрования и расшифрования используются разные преобразования. Одно из них — зашифрование — является абсолютно открытым для всех. Другое же — расшифрование — остается секретным за счет секретности ключа расшифрования. Таким образом, любой, кто хочет что-либо зашифровать, пользуется открытым преобразованием, но расшифровать и прочитать это сможет лишь тот, кто владеет секретным ключом. Схема асимметричной криптосистемы представлена на рис. 2.1.

image.png

Рис. 2.1. Обобщенная схема асимметричной криптосистемы

В настоящее время во многих асимметричных криптосистемах вид преобразования определяется ключом. У пользователя есть два ключа — секретный и открытый. Открытый ключ публикуется в общедоступном месте, и каждый, кто хочет послать сообщение этому пользователю, зашифровывает текст открытым ключом. расшифровать сообщение может только упомянутый пользователь с секретным ключом. Таким образом, отпадает проблема передачи секретного ключа, как в симметричных системах. Однако, несмотря на все свои преимущества, эти криптосистемы достаточно трудоемки и медлительны. Стойкость асимметричных криптосистем базируется в основном на алгоритмической трудности решить за приемлемое время какую-либо задачу Если злоумышленнику удастся построить такой алгоритм, то дискредитирована будет вся система и все сообщения, зашифрован ные с помощью этой системы. В этом состоит главная опасность асимметричных криптосистем в отличие от симметричных.

Алгоритм Диффи - Хелл.мама. Алгоритм Диффи — Хеллмана (Diffie - Hellman) использует функцию дискретного возведения в степень. Вначале генерируются два больших простых числа п и q. Эти два числа не обязательно хранить в секрете. Далее один из партнеров Я, генерирует случайное число х и посылает другому участнику будущих обменов Р_2 значение A=( q^x ) mod n . По получении значения А партнер Р2 генерирует случайное число у и посылает участнику обмена Р\ вычисленное значение b=( q^y ) mod n. Партнер Р_1 получив значение В, вычисляет К_x = (b^x) mod n, а партнер Р_2 - (К_y)=(А^y) mod n. Алгоритм гарантирует, что числа К_y и К_x равны и могут быть использованы в качестве секретного ключа для шифрования. Даже перехватив числа А и Я, трудно вычислить К_x или К_y. Схематично работа алгоритма Диффи — Хеллмана представлена на рис. 2.2.

image.png

Пример 2.1
n=5,q=7,x=3,y=2
A=(7^3)(mod 5)=343(mod 5)=3;
B=(7^2)(mod 5)=49(mod 5)=4;
K_x=(7^3)(mod 5) = 64 (mod 5)=4
K_y=(3^2)(mod 5)=4

Алгоритм RSA. Первое практическое воплощение принцип открытого шифрования получил в системе RSA, разработанной в 1977 г. в Массачусетском технологическом институте (США) и получившей свое название от первых букв фамилий авторов: Рональд Ривест (R. Rivest), Эди Шамир (А. Shamir), Леонард Адлеман (L. Adleman).

стр 57¶

Идея авторов этого алгоритма состояла в том, что, взяв целое число N в виде произведения двух больших простых чисел N=P*Q, легко подобрать пару чисел Y и X, таких, чтобы для любого целого числа M, меньшего N, было справедливо соотношение (M^x)^y=M mod N.

В качестве открытого ключа шифрования в системе RSA выступают ключ Y и модуль N а секретным ключом для расшифрования сообщений является число X. Процедура шифрования сообщения M, рассматриваемого как целое число (такое допущение возможно вследствие того, что любой контент может быть представлен в числовой форме при обработке в средствах вычислительной техники), меньшее N (при необходимости длинное сообщение разбивается на отрезки, шифруемые независимо), состоит в вычислении значения C=(M^Y) mod N.

Расшифрование осуществляется аналогично с использованием секретного ключа X: M=(C^X) mod N.

Математически строго можно доказать, что определение по парс чисел (N, Y) секретного ключа Хне проще разложения на простые множители числа N, т.е. нахождения Р и Q. Задача же разложения на множители целого числа изучается в математике с древнейших времен и известна как сложная вычислительная задача. В настоящее время разложение числа из нескольких сотен десятичных знаков потребует от современных вычислительных машин сотен лет непрерывной работы.

Далее представлен пример работы алгоритма RSA.
Генерация ключей
Получатель 1.P,Q- простые, N=PQ
2.φ(N)=(P-1)
(Q-1),φ(N)- Функция Эйлера
Выбор открытого ключа Y:
1<Y<=φ(N), НОД(Y,φ(N))=1
Выбор открытого ключа X:
X*Y=1 (mod φ(N))
Отправитель Шифрование M(M_i=1,2,...,N-1)
3.C_i=((M_i)^Y) (mod N)
Получатель расшифровывание С (С_1,С_2,...С_i,...)
4.M_i=((C_i)^X) mod N

стр 58¶

Пример
Генерация ключей
1.P=3,Q=11,N=PQ=33
2.φ(N)=(P-1)
(Q-1),φ(N)=1
Y=7, НОД(Y,φ(N))=1
XY=1 (MOD 20),73=1 (mod 20),X=3
Сообщение:
M_1M_2->32;M_1=3<33,M_2=2<33
Шифрование: C_i=M_i^y(mod N)
3.C_1=(3^7) mod33=2187 mod 33=9
C_2=(2^7) mod 33=128 mod 33 =29
Расшифрование М_i=((Сi)^X) (mod N)
4.M
!=9^3 mod 33 = 729 mod 33=3
M_2=(29^3) mod 33 = 24389 mod 33 = 2

Методы проверки чисел на простоту. Одна из главных проблем асимметричного шифрования — генерация больших простых чисел Про стейшим методом проверки простоты натурального числа N является метод пробных делений: для d = 2, 3 ... проверяется выполнение уcловия (d, N) >1 (здесь (d, N) — наибольший обший делитель чисел d, N) Число операций, требуемых для этого метода, имеет порядок sqrt(N). По этому уже для чисел порядка 10^30—10^40 этот метод неприменим.

В отличие от таких детерминированных методов существуют еше вероятностные методы проверки простоты. Для исследуемого числа проверяется выполнение некоторых условий, связанных со случай ными числами. Если какое-либо из этих условий не выполнено, то составное число. Если же все условия выполнены, то с некоторой вероятностью можно утверждать, что N - простое число. Эта вероятность тем ближе к единице, чем большее количество случайных чисел мы проверим. Обычно эти условия основаны на малой теореме Ферма, утверждающей, что для любого положительного числа b, не преевосходяшего некоторого простого числа p, $ b^{(p-1)} =1 (mod_{} p) $

Например, 2^6 = 64 = 63 + 1=1(mod 7). Если требуется определить, является ли целое число r простым, то можно выбрать любое положи тельпос целое число b, меньшее r, и проверить, выполнено ли равенство $ b^{(r-1)} =1 (mod_{} p) $

стр 59¶

Если равенство не выполнено, то на основании теоремы Ферма можно быть совершенно уверенным, что r—не простое число. Если же равенство выполнено, то можно лишь предполагать, что к — простое число, и поэтому назвать его псевдопростым по основанию b. Вероятность Р(х) того, что составное число х окажется псевдопростым по случайному основанию, убывает с ростом х.

К сожалению, существуют так называемые числа Кармайкла — составные числа, которые обладают свойством

b^(r-1)= l(mod r) для всех b из интервала [1, r], которые взаимно просты с г.

Примером числа Кармайкла является число 561 = 3-11-17. Классический результат теории чисел — теорема Чебышева — показывает, что доля положительных целых чисел, меньших некоторого целого т и являющихся простыми, близка к 1/(ln m). Например доля целых чисел, меньших 10'°° и являющихся простыми, близка к 1/(1п 10^100) = 1/230. Таким образом, если выбрать случайно большое целое положительное нечетное число* и последовательно проверять на простоту числа x, x + 1,х + 2.....то в среднем впервые простое число встретится на шаге с номером ln х.

ЛАБОРАТОРНАЯ РАБОТА № 5

ГЕНЕРАЦИЯ ПРОСТЫХ ЧИСЕЛ, ИСПОЛЬЗУЕМЫХ В АСИММЕТРИЧНЫХ СИСТЕМАХ ШИФРОВАНИЯ

Цель работы: изучение методой генерации простых чисел, исполь зусмых в системах шифрования с открытым ключом

Описание лабораторной работы. Для выполнения лабораторной работы необходимо запустить программу L_PROST.exe На экране дисплея появляется окно с текстовым редактором (для отображения информации об осуществленных программой действиях), в верхней строке окна расположено главное меню, чуть ниже основного меню — панель инструментов (для управления быстрыми командными кноп ками и другими «горячими» элементами управления), а в самом низу окна, пол тестовым редактором, находится строка состояния, в которой указывается подсказка и выводится дополнительная информация Клавиши панели инструментов для удобства снабжены всплывающими подсказками.

Для того чтобы попасть в основное меню, необходимо нажать клавишу F10. Передвижение но главному меню осуществляется клавиша ми перемещения курсора. Чтобы вызвать пункт меню, нужно нажать клавишу ENTER, ESC — выход из основного меню.

Для удобства в программе предусмотрена работа с мышью. В этом случае указатель подводится к нужному пункту главного меню или к нужной кнопке на панели инструментов и нажимается левая клавиша мыши, для отказа достаточно нажать клавишу ESC.

Кроме основных функций главного меню (Генерация простого Р, Поиск в интервале, Проверка на простоту и т.д.) панель инструментов содержит клавишу, при нажатии которой выводится информация о программе.

Генерации простого Р. Возможность генерации простого числа; количество разрядов генерируемого числа задается пользователем (от I до 5).

Поиск в интервале. Возможность поиска простых чисел в заданном интервале. Пользователем задается начало интервала - значение х, длина интервала - значение L. Поиск будет осуществляться в интервале (х, х + L).

При проверке на простоту каждого числа интервала сначала выполняется тест пробных делений на первые по порядку простые числа. а затем проверка по тесту Ферма. Для задания способов проверки на простоту необходимо левой клавишей мыши отметить флажок рядом с названием нужного нужного а затем указать все необходимы, данные для начала поиска.

стр 60¶

В методе пробных делений исходными данными является количество первых простых чисел для деления, а в тесте Ферма надо указать количество оснований и их значения. По окончании расчета на жран выводятся найденные простые числа и их количество. Полную картину результатов работы можно просмотреть в пункте меню Вывод результатов. Проверка на простоту. Возможность проверки на простоту любого числа. Необходимо ввести число и параметры расчета аналогично поиску в интервале. Вывод результатов. Возможность просмотра всех результатов последней обработки. При входе в программу, когда никаких расчетов еше не производилось, предоставляется возможность просмотра исходного файла первых простых чисел, используемых для теста пробных делений.

Дополнительные сведения о программе

  • 1.При запуске утилит генерации простого числа, поиска в интервале и проверки на простоту у пользователя запрашивается подтверждение на правильность выбранного метода для работы.
  • 2.Во время работы длительных по исполнению процедур запускается прогресс процесса и гасится окно текстового редактора. По полоске прогресса можно наблюдать и оценивать примерную скорость работы алгоритма и время окончания текущего процесса.
  • 3.Будьте внимательны при установке параметров работы, так как в процессе вычисления по ходу работы эти параметры изменить, уже не удастся.
  • 4.Описание «горячих» клавиш:
  • Ctrl+Fl — генерация простого Р;
  • Ctrl+F2 — поиск в интервале;
  • Cirl+F3 — проверка на простоту;
  • Cfrl+F4 - вывод результатов;
  • Ctrl+X — выход из программы.
  • 5.В лабораторной работе из-за большого времени счета рекомендуется использовать числа не более пяти разрядов и длину интервала выбирать не более 500, количество оснований для текста Ферма не более 5.

  • 6.Для правильного функционирования программы в рабочей директории (вместе с файлом l _proые.exe) обязательно должны нахолиться файлы prost.txt и work.txt Не рекомендуется вносить какие-либо изменения в эти текстовые файлы. иначе последствия могут быть непредсказуемые.

стр 61¶

Задание

  • 1.Проверить на простоту дна произвольных целых числа разрядностью не менее 5.
  • 2.Распределение простых чисел.
  • 2.1.Задан интервал вида [х, х + L). Вычислить количество П(x, L) простых чисел в интервале и сравнить с величиной L/ 1п(х). При каких условиях П(х, L)/L близко к 1/ln(х) при заданных х = 2000, L = 500, количество простых чисел для деления 5—15, количество оснований 1—2?

  • 2.2. Найти в интервале (1000, 1000 + 300) все простые числа. Пусть L(i) — разность между двумя соседними простыми числами. Построить гистограмму для L(i). Вычислить выборочное среднее L_cpeд Сравнить с величиной ln(х), где х — середина интервала. Задано: количество простых чисел для деления 5—20, количество оснований 1—3.

  • 2.3.Для заданного набора чисел {k} оценить относительную погрешность формулы для к-го простого числа: р(к) = к/ln(к), к= {10, 15, 20, 30, 35}.

Методы генерации простых чисел.

  • 3.1.В интервале (500, 500 + 200) построить график относительного количества натуральных чисел, проходящих «решето Эратосфена», т.е. не делящихся на первые к простых. Расчет производится для всех к <= 10.
  • 3.2.Для интервала (1500, 1500 + 300): а) рассчитать точное количество Р0 простых чисел в интервале, т.е. при проверке задать только тест на делимость. Количество первых простых чисел для деления определяется из расчета максимальное число для деления равно квадратному корню из максимального значения интервала; б) составить тест с небольшим количеством пробных делений и одним основанием в тесте Ферма. Вычислить количество Р| вероятно простых чисел, удовлетворяющих этому тесту; в) составить тест с большим, чем в предыдущем случае, количеством пробных делений и двумя или тремя основаниями в тесте Ферма. Вычислить количество $P_2$ вероятно простых чисел, удовлетворяющих этому тесту.
    Проанализировать полученные данные.

3.3.Известно, что в заданном интервале имеются числа Кармайкла. Найти их.
Варианты интервалов: (1050,1050+100);(1700,1700+100);(2400,2400+100).
4.Привести в отчетре ответы на контрольные вопросы в соответствии и сномером варианта (Табл. 2.1.)

Таблица 2.1.

  • Номер варианта - Контрольные вопросы
  • 1 5 7 3 9 18 28 - Почему в качестве перного основания в тестах типа теста Ферма для проверки на простоту очень больших чисел целесообразно использовать число 2?
  • 2 4 6 8 20 22 24 26 30 - Какова вероятность P(х) того, что наугад взятое нечетное очень большое число, не превосходящее х, окажется простым?
  • 11 13 15 10 17 19 27 - Вычислить: 1812 (mod 13) , 127 (mod 7)
  • 12 14 16 21 23 25 29 - Сформулируйте суть теста на простоту с использованием пробных делений

стр 63¶

стр 64¶

ЛАБОРАТОРНАЯ РАБОТА № 6

ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ

Цель работы ознакомление с принципами защищенного электронного докумонтооборота и телекоммуникационных сетях и алгоритмами постановки )лектронной цифровой подписи (ЭЦП).

Описание лабораторной работы. Электронная цифр,тин подпись. При обмене электронными документами по сети связи существенно снижаются затраты на обработку и хранение документов, ускоряется их поиск. Однако при пом возникает проблема аутентификации автора документа и самого документа, т.е. установления подлинности автора и отсутствия изменений в полученном документе.

При обработке документов в электронной форме непригодны традиционные способы установления подлинности по рукописной подписи и оттиску печати на бумажном документе. Принципиально новым решением является электронная цифровая подпись.

Первая схема ЭЦП — RSA была разработана еще в конце 1970-х гг. Однако проблема подтверждения авторства стала актуальной настолько, что в 1990-х гг. потребовалось установление стандарта. Причиной послужило повсеместное расширение глобальной сети Интернет и массовое распространение электронной торговли и оказания услуг. Именно по указанной причине стандарты ЭЦП в России и США были приняты практически одновременно, в 1994 г.

Из предложенных криптологами схем ЭЦП наиболее удачными оказались RSA и схема Эль-Гамаля. Первая из них была запатентована в США и в ряде других стран (патент на RSA прекратил свое действие совсем недавно). У второй схемы существует большое количество возможных модификаций, и все их запатентовать весьма затруднительно. Именно по этой причине схема ЭЦП Эль Гамаля оста лась по большей части свободной от патентов. Кроме того, эта схема имеет и определенные практические преимущества: размер блоков, которыми оперируют алгоритмы, и соот ветственно размер ЭЦП в ней оказались значительно меньше, чем в RSA, при той же самой стойкости. Именно поэтому стандарты ЭЦП России и США базируются на схеме Эль Гамаля.

Законы об ЭЦП сегодня имеют уже более 60 государств. В пом списке значится и Россия Принятый Федеральный закон от 6 апреля 2011 (. № 63-ФЧ «Об электронной подписи* должен оказать стимулирующие воздействие на развитие отечественной )лектронной коммерции, особенно если в соответствие с мим будут своевременно приведены иные нормативно-правовые акты.

стр 65¶

За последние годы приняты следующие решения по использованию ЭЦП:

  • Правительство РФ финансово поддерживает осуществление федеральной целевой программы «Электронная Россия»;
  • еще в январе 2001 г. правление Пенсионного фонда рф постановлением «О введении в системе Пенсионного фонда РФ криптографической, графической защиты информации и электронной цифровой подписи» регламентировало регистрацию и подключение юридических и физических лиц к системе своего электронного документооборота;
  • в 2002 г. вышел приказ МНС России «Об утверждении порядка представления налоговой декларации в электронном виде по телекоммуникационным каналам связи», благодаря которому сегодня любое физическое или юридическое лицо может связаться с налоговой инспекцией, используя защищенную электронную почту;
  • в 2004 г. были утверждены поправки к ст. 13 и 15 Закона «О бухгалтерском учете», согласно которым бухгалтерская отчетность предприятия может вестись, храниться и предоставляться в контролирующие органы в электронном виде.

Принцип построения ЭЦП. Асимметрия ролей отправителя и получателя в схемах ЭЦП требует наличия двух тесно связанных ключей: секретного, или ключа подписи, и открытого, или ключа проверки подписи. Любая схема ЭЦП обязана определить три следующих алгоритма:

  • 1)генерации ключевой пары для подписи и ее проверки;
  • 2)постановки подписи;
  • 3)проверки подписи.

Стандарты России и США очень похожи, они различаются лишь некоторыми числовыми параметрами и отдельными деталями выработки ключе,юй пары, вычисления и проверки подписи Действительно, оба стандарта являются вариантами одной и той же схемы ЭЦП Эль-Гамаля.

ЭЦП исиолыустси для аутентификации текстом, передаваемых по телекоммуникационным каналам. Функционально она аналогична обычной рукописной подписи и обладает основными се достоинствами:

  • удостоверяет, что подписанный текст исходит от лица, поставив шею подпись;
  • Не даст самому этому лицу возможность отказаться от обязательств, связанных с подписанным текстом;
  • гарантирует целостность подписанного текста.

стр 66¶

ЭЦП представляет собой относительно небольшое количество дополнительной цифровой информации, передаваемой вместе с подписываемым текстом, и включает две процедуры:

  • 1)процедуру постановки подписи, в которой используется секретный ключ отправителя сообщения;
  • 2)процедуру проверки подписи, в которой используется открытый ключ отправителя.

Процедура постановки подписи. При формировании ЭЦП отправитель прежде всего вычисляет хэш-функцию h(M) подписываемого текста M. Вычисленное значения хэш-функции h(M) представляет собой один короткий блок информации m, характеризующий весь текст М в целом. Затем значение m шифруется секретным ключом отправителя. Получаемая при этом пара чисел представляет собой ЭЦП для данного текста М.

Процедура проверки подписи. При проверке ЭЦП получатель сообщения снова вычисляет хэш-функцию m = h(М) принятого по каналу текста М, после чего при помощи открытого ключа отправителя проверяет, соответствует ли полученная подпись вычисленному значению m хэш-функции.

Принципиальным моментом в системе ЭЦП является невозможность подделки ЭЦП пользователя без знания его секретного ключа.

Каждая подпись, как правило, содержит следующую информацию:

  • дата подписи;
  • срок окончания действия ключа данной подписи;
  • информация о лице, подписавшем текст;
  • идентификатор подписавшего (имя открытого ключа);
  • собственно цифровая подпись.

Однонаправленные хэш-функции. Хэш-функция предназначена для сжатия подписываемого документа M до нескольких десятков или сотен бит. Хэш-функция h(.) использует в качестве аргумента сообщение М произвольной длины и возвращает хэш-значение h(M) = Н фиксированной длины. Обычно хэшированная информация является сжатым двоичным представлением основного сообщения произвольной длины. Следует отметить, что значение хэш-функции Л(Л/) сложным образом зависит от документа М и не позволяет восстановить сам документ М.

стр 67¶

Хэш функция должна удовлетворять целому ряду условий:

  • быть чувствительной к всевозможным изменениям в тексте M
  • обладать свойством необратимости, т.е. задача подбора документа M_1, который обладал бы требуемым значением хэш-функции должна быть вычислительно неразрешима;
  • вероятность того, что значения хэш-функции двух различии документов совпадут, должна быть ничтожно мала.

Большинство хэш-функций строится на основе однонаправденн и функции F(0), которая образует выходное значение длиной n при зала ним двух входных значений длиной n. Этими входами являются блок исходного текста Mi, и хэш-значение предыдущего блока тек (рис. 2.3).

image.png

Рис. 2.3. Схема формирования хэш-функции

Алгоритм цифровой подписи DSA. Алгоритм цифровой подписи DSA (Digital Signature Authorization) предложен в 1991 г. в США и является I развитием алгоритма цифровой подписи Эль-Гамаля.

Отправитель и получатель электронного документа используют! при вычислении большие целые числа:

G.P- простые числа по L-бит каждое (1 = 512 ... 1024 бит);

Я - простое число длиной 160 бит делитель числа (Р- 1). J

Числа G, Р, q являются открытыми и могут быть общими для всех пользователей сети.

  1. Отправитель выбирает случайное целое число X, 1 < Х<q.

Число Х является секретным ключом отправителя для формирования электронной подписи.

  1. Отправитель вычисляет значение $Y=G^X mod P$

Число У является открытым ключом для проверки подписи отправителя и передается всем получателям документа. 3. Для того чтобы подписать документ Му отправитель хэширует его в целое хзш-значение m: $m=h(M),1<m<q$

стр 68¶

Затем генерирует случайное целое число K. 1 < K < q и вы числяет число r: $r=(G^K mod P) mod q$

4.При помощи секретного ключа X отправитель вычисляет число s: $s=((m+r*X)/K) mod q $.

Пара чисел г, s образуют цифровую подпись S =(r, s ) под документом М.

5.Доставленное получателю сообщение вместе с подписью представляет собой тройку чисел [M, r, s]. Прежде всего получатель проверяет выполнение соотношений: 0<r<q; 0<s<q.

6.Далее получатель вычисляет значения: w=1/s mod q; m=h(M) - хеш-значение; $ u_1 = (m*w) mod q$; $ u_2 = (r*w) mod q$ ; Затем при помощи открытого ключа Y вычисляется значение $v=((G^{u_1}*Y^{u_2}) mod P) mod q$ и проверяется выполнение равенства v = г. Если оно выполняется, то подпись признается подлинной, так как можно строго математически доказать, что последнее равенство будет выполняться тогда и только тогда, когда подпись 5= (г, s) под документом Л/ получена при помощи именно того секретного ключа Х, из которого был получен открытый ключ Y.

Новые стандарты ЭЦП. Последние достижения криптографии показали, что общая проблема логарифмирования в дискретных полях, являющаяся базой указанной схемы ЭЦП, не может считаться достаточно прочным фундаментом. Например, размеры блоков, считающиеся безопасными, растут сравнительно быстрыми темпами. В результате это привело к тому, что стандарты ЭЦП России и США в 2001 г. были обновлены: переведены на эллиптические кривые. Наиболее употребимые алгоритмы ЭЦП приведены на рис. 2.4..

стр 69¶

Схемы ЭЦП при этом остались прежними, но в качестве чисел, которыми они оперируют, теперь используютсы не элементы конечного поля GF(2n) или GF(p), а эллиптические числа - решения управления эллиптических кривых над указанными конечными полями. Роль операции возведения числа в степень в конечном поле в обновленных стандартах выполняет операция взятия кратной точки эллиптической кривой - умножение точки на целое число.

image-2.png

Рис. 2.4. Алгоритмы ЭЦП, используемые в РФ

Надлежащий выбор типа эллиптической кривой позволяет многократно усложнить задачу взлома схемы ЭЦП и уменьшить рабочий размер блоков данных. Старый российский стандарт ЭЦП оперирует 1024 битовыми блоками, а новый, основанный на эллиптических кривых. 256-битовыми, и при этом обладает большей стойкостью.

Стойкость схемы ЭЦП ГОСТ Р34.10-94 базируется на сложности решения задачи дискретного логарифмирования в простом поле. В настоящее время наиболее быстрым алгоритмом ее решения для обшего случая является алгоритм обобщенного оешета числового поля.

В ГОСТ Р34.10-2001 стойкость схемы ЭЦП основана на сложности решения задачи дискретного логарифмирования в греппе точек эллиптической кривой. При правильном выборе параметров кривой самыми эффективными методами ее решения являются более трудоемкими r- и l-методы Полларда. Так, по разным оценкам специалистов, трудоемкость взлома старого и нового стандартов ЭЦП России составляет величину порядка 1026 и 1038 операций умножения в базовом поле GF(p) соответственно. Очевидно, что новый стандарт более стойкий.

стр 70¶

Задание

  • 1.Ознакомиться с основными направлениями рабоыт в рамках федеральной целевой программы «Электронная Россия», а также со сведениями о порялке использования и действующий алгоритмах постановки электронной цифровой, изложенными выше Запустить программу labWщкл6.exe, предназначенную для демонстрации порядка постановки и проверки электронной цифровой подписи.
  • 2.Сгенерировать и переслать участникам обмена ключи для шифрования исходного документа и ключи для подписания документа. Исходный текст для шифрования набирается непосредственно в окне программы.
  • 3.Зашифровать исходное сообщение и подписать его на секретном ключе отправителя.
  • 4.Переслать зашифрованное и подписанное сообшение получателю. Выполнить проверку правильности ЭЦП и восстановить исходный текст сообщения.
  • 5.Сохранить в отчете экранные формы, демонстрирующие процесс генерации и распространения ключей; процесс шифрования исходного документа и постановки ЭЦП.
  • 6.Привести в отчете ответы на контрольные вопросы в соответствии с номером варианта (табл. 2.2).

Таблица 2.2
Номер варианта Контрольные вопросы
1.5,7, 3, 9, 18,28 В чем состоит назначение хэш-функций и какие требования предъявляются к хэш-функциям, используемым для постановки ЭЦП? Перечислите стандарты хэш-функций, действующие в Российской Федераиии
2.4,6,8, 20, 22, 24, 26, 30 Опишите процедуры постановки и проверки ЭЦП Какая информация содержится в ЭЦП9
11, 13, 15, Ю, 17, 19. 27 Перечислите стандарты ЭЦП, действующие в Российской Федераиии На каких принципах основана криптостойкость современных алгоритмов ЭЦП7
12,14, 16 21,23, 25,29 Приведите пример реализации алгоритма ЭЦП (KSA, Эль-Гамаль, DSA)

стр 71¶

ЛАБОРАТОРНАЯ РАБОТА № 7

ШИФРОВАНИЕ МЕТОДОМ СКОЛЬЗЯЩЕЙ ПЕРЕСТАНОВКИ

Цель работы: исследование шифра сколыяшей перестановки с использованием программной реализации XY-Mover.

Описание лабораторной работы. Устойчивые закономерности открытого текста и их использование при дешифровании шифров простой заме-ны и перестановки. Возможность дешифрования какого-либо шифра в значительной мере зависит от того, в какой степени криптографические преобразования разрушают вероятностно-статистические закономерности, присутствующие в открытом содержательном тексте. Так, в осмысленных текстах любого естественного языка различные буквы встречаются с разной частотой, при этом относительные частоты букв в различных текстах одного языка близки между собой. То же самое можно сказать и о частотах пар, троек букв открытого текста. Кроме того, любой естественный язык обладает так называемой избыточностью, что позволяете большой вероятностью «угадывать» смысл сообщения, даже если часть букв в сообщении не известна.

Таблицы относительных частот появления букв в тексте (табл. 2.3) приводятся в разных книгах. Они получены на основе подсчетов частот на больших объемах открытого текста. Учитывая, что для экспериментов берется различный исходный материал, значения вероятностей несколько отличаются между собой.

таблица 2.3.
1 а - 0,062 12 л - 0,035 23 ц-0,004
2 6-0,014 13 м - 0,026 24 4-0,012
3 в-0,038 14 н - 0,053 25 ш-0,006
4 г-0,013 15 о - 0,090 26 щ - 0,003
5 д - 0,025 16 п - 0,023 27 ы-0,016
6 е.е - 0,072 17 р - 0,040 28 ъ,ь-0.014
7 ж - 0,077 18 с - 0,045 29 э - 0,003
8 3-0,016 19 т-0,053 30 к) - 0,006
9 и - 0,062 20 у-0.021 31 я -0.018
10 й - 0,010 21 ф - 0,002 I 32 - 0.175
11 к - 0,028 1 22 к-0.009 If

Если упорядочить буквы по убыванию вероятностей, то мы получим следующий вариационный ряд: О,Е,А,И,Н,Т,С,Р,В,Л,К,М,Д,П,У,Я,З,Ы,Б,Ь,Г,Ч,Ц,Х,Ж,Ю,Ш,Ц,Щ,Э,Ф

стр 72¶

Например, в слове СЕНОВАЛИТР содержатся 10 наиболее часто Встречающихся букв. Частоты знаков алфавита зависят не только от языка, но и от характера текста. Так, в тексте по криптографии будет повышена вероятность букв Ф Ш из-за чего часто встречающихся слов ШИФР и КРИПТОГРАФИЯ. В некоторых математических текстах может быть завышена частота букв Ф из-за слов ФУНКЦИЯ ФУНКЦИОНАЛ и тд. В стандартных текстовых файлов наиболее частым является символ ПРОБЕЛ. Частотная диаграмма содержательных текстов является устойчивой характеристикой текста. Из теории веероятностей следует, что при достаточно слабых ограничениях на вероятностные свойства случайного процесса справедлив закон больших чисел, т.е. относительные частоты $v_k/N$ знаков сходятся по вероятности к значениям их вероятностей $p_k$

$p{(v_k/N -p_k)>E}->0$; при N->бесконечности

Шифры псрсстапоики и простой замспы по полностью разрушают вероятностно статистические свойства, имеющиеся в открытом сообщении.

При дешифровании текста, зашифрованного шифром простой замены, используют частотные характеристики открытого текста. Именно если подсчитать частоты встречаемости знаков в шифрованном тексте, упорядочить их по убыванию и сравнить с вариационным рядом вероятностей открытого текста, то эти две последовательности будут близки. Скорее всего на первом месте окажется пробел, далее будут следовать буквы «О», «E», «А», «И».

Конечно, если текст не очень длинный, то не обязательно полное совпадение. Может оказаться на втором месте «О», а на третьем «Е», но в любом случае в первых и вторых рядах одинаковые буквы будут располагаться недалеко друг от друга и чем ближе к началу (чем боль ше вероятность знаков), тем меньше будет расстояние между знаками.

Аналогичная картина наблюдается и для пар соседних букв, би-грамм, открытого текста (наиболее частая биграмма русского от крытого текст» С Г). Однако для получения устойчивой картины длина анализируемой последовательности должна быть достаточно большой. На сравнительно небольших отрезках открытого текста эта картина как то смазана. Более устойчивой характеристикой биграмм является отсутствие в осмысленном тексте некоторых биграмм, как говорят, наличие запретных биграмм, имеющих вероятность, равную практически нулю.

стр 73¶

Видели ли вы когда-нибудь в открытом тексте биграмму «ЪЬ» или биграммы вида «гласная» Ь, «пробел» Ь? Знание и использование указанных особенностей открытого текста значительно облегчает дешиф рование шифра перестановки и замены.

Шифр перестановки. Положим X — множество открытых (содержательных) текстов в алфавите I. Длины всех возможных открытых текстов кратны величине Т. Множеством ключей является симметрическая группа подстановок $S_T$ степени Т, для g принадлежит $S_T$ определим функцию шифрования $f_g$ положив для ($i_1$,$i_2$,...$i_T$) принадлежит X

$f_g$($i_1$,$i_2$,...,$i_t$) = ($i_g(1)$,$i_g(2)$,...,$i_g(T)$),

доопределим $f_g$ на остальных элементах из X по правилу: текст х принадлежит X делится на отрезки длины Т и каждый отрезок длины Т шифруется на ключе g по указанному выше закону шифрования. Последовательность, составленная из букв образов зашифрованных слов, является шифрованным текстом, соответствующим открытому тексту х и ключу g. Для шифрования текста длины, не кратной Т, его дополняют буквами до длины, кратной Т.

Дешифрование шифра перестановки. Шифрованный текст записывается в таблицу с Т столбцами. Для восстановления открытого текста шифра перестановки нам необходимо переставить колонки таким образом, чтобы в строках появился осмысленный текст.

Рассмотрим пример дешифрования шифра перестановки восьми столбцов. Пусть шифротекст имеет следующий вид (табл. 2.4).

Таблица 2.4

  • 1 2 3 4 5 6 7 8
  • п а я в и м
  • о ч ш г у с
  • с б ж л е о
  • м ч о т о я
  • е г с У с щ
  • _ а к ь з а т т
  • я р с с п ь
  • ю З в а н в
  • о й а в е ш л _
  • с с я м п н
  • ь р Р н 3 с с с
  • 3 а м а н _ а к
  • ч с т а _ ь а н
  • о я Л м а л

стр 74¶

Окончание

  • 1 2 3 4 5 6 7 8
  • о ь ч х т ф т _
  • в _ е о а л е п
  • о е р м т ь е _
  • д с г ы _ о а т
  • е б в н ы _
  • _ а у и н з н л
  • _ г и а о к к д
  • а о б д г н
  • _ ж а у е д я д
  • х л и _ е м о а
  • к р т д _ ь о е
  • ь х в т о н
  • р л е _ е д а ю
  • р з е в е д
  • ш _ в а е н е н
  • т и й е в д
  • в с д _

Сопоставим перестановке столбцов таблицу 8x8, при этом поставим на пересечении i-й строки и j-й столбца единицу, если j-я колонка после обратной перестановки должна следовать за i-й. Наша задача — восстановить таблицу, отвечающую правильной перестановке столбцов.

Давайте теперь попарно пристраивать один столбец к другому. Если при этом в некоторых строках появляются запретные биграммы, то столбцы не могут в открытом тексте следовать друг за другом к соответствующая клеточка зачеркивается. В нашем примере шестой столбец не может следовать за четвертым, так как иначе в тексте в первой строке будет подряд два пробела. Посмотрим, например, шестую строку. Если бы четвертый столбец следовал за первым, то в тексте были бы слова, начинающиеся с «Ь».

После просмотра всех строк получим табл. 2.5.

Таблица 2.5

  • _ 1 2 3 4 5 6 7 8
  • 1 x x x x x x
  • 2 x x x _
  • 3 x x
  • 4 x x x x x x
  • 5 x _ x x x x
  • 6 x x x x x _
  • 7 x x x x x x
  • 8 x x x x x x

стр 75¶

Если бы текст был подлиннее и строк было бы побольше, то в каждом строке и в каждом столбце осталось бы ровно по одной незачеркнутой клеточке и перестановка была бы восстановлена.

В таблице 2.5 только можно утверждать, что шестой столбец следует за третьим (обозначим это событие следующим образом: 3—> 6), если шестой столбец не является последним. Для шестого столбца может быть два варианта продолжения

  8
  ↑
3→6→5

Нам надо рассмотреть оба и постараться отсеять ложный вариант. Если отсеять ложный вариант не удастся, то надо продолжать оба варианта

  8→4 1
  ↑   ↑
3→6→5→2→7

В итоге получаем некоторое дерево возможного следования столбцов в открытом тексте.

      7
      ↑
3→6→5→2→8→4→1→7
  ↓ ↓ ↓
  8 4 1→7
  ↓ ↓
  4 1→7
  ↓
  5
  ↓
  2→7
  ↓
  1→7

стр 76¶

Каждой ветви дерева соответствует некоторая перестановка столбцов. Далее проверяем каждый вариант на осмысленность и получаем правильный вариант: 3→6→5→2→8→4→1→7

Заметим, что не обязательно было строить дерево до конца. Например. ветвь 3→6→8→4→5 можно было отсеять сразу. Разве можно признать осмысленным фрагмент текста, приведенный в табл. 2.6?

Табл 2.6.

  • 3 6 8 4 5
  • я м в
  • ш у е г _
  • ж е о л _
  • ч т я _ о
  • г у щ е з
  • к а т ь е
  • е а и _ а

Такая процедура отсечения ветвей была бы просто необходима, если бы строк было поменьше и дерево было бы соответственно гораздо ветвистее. Предложенную процедуру легко автоматизировать и сделать пригодной для реализации на ЭВМ. Алгоритм дешифрования должен состоять из следующих этапов.

  • 1.Предварительная работа. Анализируя достаточно представительный объем открытых текстов, построить множество запретных биграмм.
  • 2.Предварительная работа. Составить словарь всех возможных v грамм для v 2, 3, ..., d, которые могут встретиться в открытом тексте. Число d выбирается исходя из возможностей вычислительной техники.

Построить таблицу 8x8. При чтом перебираются последовательно все запретные бифаммы и для каждой опробуемой бнграммы последовательно все строки. Если хотя бы в одной строке первый символ Ожраммы встречается в i м столбце, а второй в j м, то клеточка i х j таблицы зачеркивается.

  • 3.Выбрать некоторый столбец в качест ве начального.
  • 4.Начать процедуру построения дерева путем пристраивания к исходному столбцу всех вариантов столбцов.
  • 5.Для каждого полученного варианта добавить еще один из оставшихся столбцов. Если хотя бы в одной из строк таблицы встретится 3-грамма, которая отсутствует в словаре размещенных 3-грамм, то вариант отсеивается.
  • 6.Для каждого из неотсеянных вариантов добавляем еще один столбец и проводим отсев ложных вариантов по словарю разрешен' ных 4-грамм.

стр 77¶

Если словарь был построен только для d < 3, то отсев проводится путем проверки на допустимость 3-грамм, встретившихся в последних трех столбцах каждой строки. Продолжаем этот процесс до получения полной перестановки.

В таблице 2.7 приведен восстановленный для нашего примера текст.

Таблица 2.7.

  • _ 1 2 3 4 5 6 7 8
  • 1 я в а м п и
  • 2 ш у ч е г о
  • 3 ж е б о л е
  • 4 ч т о я м о
  • 5 г у е щ е с
  • 6 к а з а т ь _ т
  • 7 е п е р ь я
  • 8 з н а ю в в
  • 9 а ш е й _ в о л
  • __ 1 2 3 4 5 6 7 8
  • 10 е м е н я п
  • 11 р е з р е н ь е
  • 12 м _ н а к а з а
  • 13 т ь _ с н а ч а
  • 14 л а я м о л
  • 15 ч а т ь _ х о т
  • 16 е л а _ п о в с
  • 17 р ь т е _ м о е
  • 18 г о _ с т ы д а
  • 19 в ы б н е _
  • 20 у з н а л и _ н
  • 21 е к о г д а _ к
  • 22 о г д а б н
  • 23 а д е ж д у _ я

Окончание

  • __ 1 2 3 4 5 6 7 8
  • 24 и м е л а _ х о
  • 25 т ь _ р е д к о
  • 26 х о т ь в н
  • 27 е д е л ю _ р а
  • 28 з в д е р е
  • 29 в н е _ н а ш е
  • 30 й _ в и д е т ь
  • 31 в а с _

стр 78¶

Дальнейшее развитие шифры перестановки получили осуществлением идеи непрерывной локальной перестановки символов открытого текста под действием управляющей последовательности. Для осуществления перемешивания знаков открытого текста в памяти шифратора запоминаются отдельные знаки текста и проводится задержка их передачи в дискретном времени. Введем параметры $n_1$ и $n_2$ так, что n=$n_1$+$n_2$. В этих шифрах i-й знак передаваемого сообщения переставляется в шифрованном сообщении на j-е место, где i- $n_1$<=j<=i- $n_2$.

Управляющую последовательность временем задержки стараются выбрать так, чтобы время задержки каждого символа было случайной величиной с равномерным распределением, т.е. вероятность каждого фиксированного значения времени задержки должна быть близка к 1/n .

Шифрующий автомат скользящей перестановки. Рассмотрим схему шифрующего автомата, позволяющего при подходящей управляющей последовательности реализовать произвольный шифр скользящей перестановки (рис. 2.5).

На вход узла формирования задержки (УФЗ) в каждом такте г подается вектор $\overrightarrow{y}$= ($y^t_1$,...,$y^t_n$)

$y^t_1$ in {0,1}, i=$\overrightarrow{2,n-1}$ , $y^t_1$=$y^t_n$=1

Узел формирования задержки является конечным автоматом ($F^n_2$,$F^n_2$,{1,...,n},$\delta$,$\lambda$), множеством состояний которого является множество всевозможных двоичных векторов - запполнений $\bar{x}(t)=(x^t_1,...,x^t_n)$ нижнего накопителя. В такте tвырабатывается натуральное число - значение $\gamma_t$ задержки: $\gamma_t= max j:${$x^t_j=y^t_j=1,$ $ j=\bar{1,n}$}

стр 79¶

image.png

Рис. 2.5. Схема реализации шифрующего автомата скользящей перестановки

При этом автомат переходит в следующее состояние: $\bar{x}=(t+1)=(x^{t+1}_1,..,x^{t+1}_n)$, где $x^{t+1}_1$=1

$$ x^(t+1)_1= \begin{cases} 0 & i=\gamma_t+1\\ x^t_{i-1} & i\in \{2,...,\gamma_t,\gamma_t+2,...,n\} \end{cases} $$

Знаки открытого текста записываются на нижний накопитель В линию в t-м такте посылается знак открытого текста, записанный

в ячейке с номером $\gamma_t$. Состояния автомата $\overrightarrow{x}$(1) являются индикаторами, показывающими, какие из знаков открытого текста еще не считаны с нижнего накопителя.

Для зашифрования последовательности $t_N$, ..., $t_2$, $t_1$ поступают следующим образом. Сначала записываем в нижний накопитель первый л/ знаков открытого текста ($t_{n1}$, ..., $t_1$, 0, ..., 0)

Одновременно автомат устанавливается в начальное состоание $\overrightarrow{x}$(1)=(0, ... , 0 ).

После этого автомат УФЗ начинает работать по описанному выше закону до тех пор, пока в накопитель не поступить последний знак $t_N$

стр 80¶

открытого текста. С прекращением gjlfxb на накопитель знаков открытого текста происходит прекращение полами единиц на накопитель-индикатор. В оставшиеся $n_1$, тактов производится смитывание записанной в накопителе информации.

При расшифровывании УФЗ работает по той же схеме, только вместо считывания необходимо организовывать запись информации во второй накопитель.

Рассмотрим особенности работы УФЗ. В каждом такте t (за исключением последних $n_1$ тактов) в накопителе-индикаторе $\overrightarrow{x}$(t) записано ровно $n_1$ единиц. Поэтому в такте t величина задержки может принимать только одно из $n_1$ значений в интервале {1,..., n). В мастном случае. когда n = 1 либо $n_1$ = и, УФЗ вырабатывает постоянно значения задержки $\gamma_t$=1 и $\gamma_t$=п соответственно. Легко видеть, что результирующее преобразование открытого текста действительно будет шифром скользящей перестановки. Условие $y^t_1$= 1, t = 1,2,... обеспечивает постоянное считывание во всех тактах, а условие $y^t_2$=1 ограничивает величину задержки $\gamma_t$<= n.

Пример 2.2. Примем п = 7, $n_1$ = 3, $n_1$=4. На вход УФЗ на каждом шаге t работы шифрующего автомата подается вектор $\overrightarrow{y}$ = ($y^t_1$,...,$y^t_n$) получаемый в линейном регистре сдвига (Л PC) (рис. 2.6).

image.png

Рис. 2.6. Линейный регистр сдвига

Надеемся, что читатель сможет написать последовательность состояний данного линейного регистра сдвига, с помощью которой образуется управляющая последовательность шифрующего автомата.

Будем обозначать на каждом шаге работы шифруюшего автомата последовательность $y_1$, $y_2$, ..., $y_n$ (в нашем случае $y_1$, $y_2$, ..., $y_7$), поступающую с ЛРС, как Y, а последовательность единиц $x_1$, $x_2$, ..., $x_n$ (в нашем случае $x_1$, $x_2$, ..., $x_7$) как 1 . В нижней строке будем записывать знаки открытого текса, находящися на данном шаге в нижнем накопителе шифрующего автомата $t_1$, $t_2$, ..., $t_n$ (в нашем случае $t_1$, $t_2$, ..., $t_7$). Рассмотрим пошагово работу шифратора при конкретных условиях. На каждом шаге, начиная с левого края и идя направо, мы искали первое совпадение в строках Y и 1 (1 в обеих строках) и для удобства оббводили этот столбец. Элемент открытого текста, который оказался в выбранном столбце, уходит в линию. Таким образом, в нашем примере последовательность, ушедшая в линию, имеет следующий вид: $t_2$, $t_4$, $t_5$, $t_6$, $t_1$, $t_7$, $t_3$, $t_8$.

стр 81¶

image.png

Описание программной реализации. Для выполнения лабораторной работы на компьютере необходимо установить программный модуль XY-Mover Ниже представлены основные элементы программы.

1.Строки меню. В данной программе меню состоит из трех пунктов: ШИФРОВАНИЕ, ВИД, ПОМОЩЬ. Необходимый пункт меню можно выбрать, щелкнув по нему левой кнопкой мыши, или с помощью кнопок клавиатуры «вправо», «влево», нажав перед этим функциональную клавишу F10. После того как пользователь выбрал необходимый ему пункт меню, откроется ниспадающее подменю. Рассмотрим пункты меню подробнее.

■ ШИФРОВАНИЕ пункты ниспадающего меню можно выбрать либо левой кнопкой мыши, либо кнопками клавиатуры «↑». «↓», смотрим подробнее пункты подменю:

  • РЕДАКТИРОВАНИЕ ПАРАМЕТРОВ - позволяет задать необходимые параметры в поле окна программы «Параметры шифратора»,
  • ШИФРОВАТЬ — запускает процесс шифрования,
  • ДЕШ ИФРОВание - запускает процесс дешифрования,

стр 82¶

  • ВЫХОД - завершение работы программы;

■ ВИД - этот пункт меню позволяет выбрать внешний вил про граммы. Ниже приводятся пункты подменю:

  • ПАРАМЕТРЫ - позволяет использовать поле «Параметры шифратора», описанную ниже;
  • СХЕМА ШИФРАТОРА позволяет наблюдать структурную схему шифрующего автомата;
  • СТРОКА СОСТОЯНИЯ - выбор этого пункта меню позволяет наблюдать строку состояния, описанную ниже.
  1. Панель инструментов. Возможно, пользователю будет удобнее воспользоваться панелью инструментов (так называемыми кнопками) вместо работы с меню. Кнопки дублируют некоторые пункты меню, но выбрать кнопку гораздо удобнее, чем пункт подменю. Для этого необходимо щелкнуть по выбранной кнопке левой кнопкой мыши. Рассмотрим кнопки слева направо:
  • А. позволяет получить результат, аналогичный пункту меню: ВИД/ПАРАМЕТРЫ;
  • схема шифратора — позволяет получить результат, аналогичный пункту меню ВИД/СХЕМА шифратора;
  • строка состояния — позволяет получить результат, аналогичный пункту меню: ВИД/СТРОКА СОСТОЯНИЯ;
  • редактирование параметров — позволяет получить результат, аналогичный пункту меню ШИФРОВАНИЕ/РЕДАКТИРОВАНИЕ ПАРАМЕТРОВ;
  • шифровать — позволяет получить результат, аналогичный пункту меню ШИФРОВАНИЕ/ШИФРОВАТЬ;
  • «дешифровать» — позволяет получить результат, аналогичный пункту меню ШИФРОВАНИЕ/ДЕШИФРОВАТЬ;
  • «прервать» — позволяет прервать процесс обработки данных (шифрование или дешифрование).

3 Строка состояния. Строка состояния находится в нижней части окна программы. На ней выводится информация о состоянии программы:

  • шифрование методом скользящей перестановки - эto сообщение указывает на то, что программа готова к работе.
  • завершено ... % индикация объема выполненной работы при зашифровании или расшифровании.
  1. Описание полей окна программы:
  • параметры шифратора:
  • $n_1$ число знаков, которые записываются в нижний накопитель первым,
  • $n_2$ - остальные знаки(всего их 127),
  • отводы регистра - точки сьема ЛРС,
  • начальное заполнение - начальное заполнение ЛРС, которое пользователь может изменять;

■ входной поток:

  • поле, в котором отражается имя текстового файла, содержание которого нужно шифровать (расшифровать),
  • кнопка ОТКРЫТЬ - при нажатии на эту кнопку открывается стандартное для Windows окно ОТКРЫТИЕ ФАЙЛА,
  • текст - содержимое файла, открытого для шифрования (расшифрования),
  • битовый поток - побитное представление символов выбранного файла;

■ выходной поток:

паю, в котором отражается имя текстового файла, содержание когорого нужно расшифровать/шифровать, кнопка «Открыть» при нажатии на эту кнопку открывается стандартное для Windows окно «ОТКРЫТИЕ ФАЙЛА», текст содержимое файла, открытого для расшифрования (шифрования), битовый поток побитное представление символов выбранного файла.

стр 83¶

Задание

  • 1.Для выполнения лабораторной работы на компьютере необходи мо установить программный модуль XY-Mover.
  • 2.Выполнить начальные установки шифратора согласно примеру.
  • 3.Загрузить файл для шифрования.
  • 4.Произвести шифрование информации с использованием шифра скользящей перестановки, сохранить шифртекст в файле.
  • 5.Описать в отчете процесс шифрования и расшифрования данных с использованием программы эмулятора XY Mover Про анализировать полученные данные.
  • 6.Включить в отчет о лабораторной работе ответы на контрольные вопросы, выбранные в соответствии с номером варианта (табл. 2.8).

стр 84¶

Таблица 2.8

  • Номер три анта Контрольные вопросы
  • 1.5, 7,3, 9. 18.28 Почему шифрование методом гаммирования является наиболее подходящим для высокоскоростных линий телекоммуникационной связи?
  • 2.4. б. 8. 20. 22. 24. 26. 30 Какие общие требования предъявляются к гамме шифра?
          1. 17, 19. 27 Приведите пример, поясняющий работу шифрующего автомата скользящей перестановки при п = 5. $п_1$ = 2, $n_2$= 3
  • 12, 14, 16 21.23, 25, 29 Кратко опишите работу схемы реализации шифра скользящей перестановки

стр 85¶

ЛАБОРАТОРНАЯ РАБОТА № 8¶

ИЗУЧЕНИЕ ПРОГРАММНЫХ ПРОДУКТОВ ЗАЩИТЫ ИНФОРМАЦИИ. ПРОГРАММА PGP¶

Цель работы: ознакомление с общими принципами построения и использования программных средств зашиты информации, в частности с программой PGP (Pretty Good Privacy). Для выполнения лабораторной работы при отсутствии на компьютере программы PGPee необходимо инсталлировать. Инсталляционный файл прилагается к описанию лабораторной работы PGPfreeware602i.

Выбрать для установки только следующие компоненты:

  • PGP 6.0.2 Program Files;
  • PGP 6.0.2 User's Manual;
  • Unconfigured PGP 6.0.2 Client Install;
  • PGP disk for Windows.

На вопрос программы установки о существовании ключей ответить «Нет», а на вопрос о необходимости перезагрузки системы — «Да».

Освоение средств программной системы PGP, предназначенных:

  • для шифрования конфиденциальных ресурсов и разграничения доступа к ним;
  • обеспечения целостности информационных ресурсов с помощью механизма электронной цифровой подписи;
  • надежного уничтожения остаточной конфиденциальной информации;
  • скрытия присутствия в компьютерной системе конфиденциальной информации с помощью виртуального диска.

Описание лабораторной работы. Основные задачи программы PGP — шифровать файлы и почтовые сообщения, заверять их пек тронными подписями, полностью уничтожать файлы на диске Пра-фамма PGP предоставляет также следующие возможности

  • хранение открытых ключей на удаленном сервере;
  • использование трех симметричных алгоритмов шифрования и двух асимметричных;
  • четыре способа запуска: E-mail plugins, PGPtray PGPtools. кон текстное меню;
  • разделение ключей;
  • установка уровня валидности ключа и доверии владельцу ключа

стр 86¶

PGPPkeys. Это программа, входящая в состав PGP 6.0 и обеспечивающая работу с ключами (рис. 2.7).

image.png

Рис. 2.7. Окно PGPkeys

В меню FILE содержатся две команды, одна из которых EXIT, другая — SEND KEY SHARES позволяет послать локальную копию разделенного ключа по сети.

Меню EDIT кроме обычных команд содержит команду PREFERENCES, которая служит для задания настроек программы (рис. 2.8).

image.png

Рис. 2.8. Окно PGP Preferences

стр 87¶

С помощью меню VIEW можно задать отображаемые на экране свойства ключей.

Команды меню KEYS:

SIGN — позволяет подписать своим закрытым ключом открытые ключи других пользователей. Тем самым вы можете показать, что доверяете владельцу используемого ключа, т.е. ключ действительно при надлежит владельцу. При этом можно задать модификаторы: 1) Non Exportable — для локального набора ключей; 2) Exportable — заверен ный ключ отсылается на сервер; 3) Meta-introducer Non-Exportable -доверяете не только владельцу, но и любому доверенному им ключу; 4) Trusted Introducer Exportable — вы доверяете владельцу подписывать ключи (рис. 2.9).

image.png

Рис. 2.9. Окно PGP Sign Key

SET AS DEFAULT KEY — назначить данный ключ ключом по умолчанию;
ADD NAME/PHOTO/REVOKER - позволяет добавить к свойствам ключа имя владельца, имеющего право объявить ваш ключ недействительным;
REVOKE — объявить ключ недействительным; REVERIFY SIGNATURES - проверить сигнатуру (правильность) ключа;
NEW KEY — добавить новый ключ;
SHARE SPLIT - разделить ключ между несколькими владельцами. IMPORT/EXPORT — импортировать/экспортировать ключ из/в текстовый файл;

стр 88¶

KEY PROPERTIES - свойства (при этом можно задать степень доверия. валидность ключа) (рис. 2.10, 2.11);

image.png

Рис. 2.10. Окно Key Generation Wizard

image.png

Рис. 2.11. Окна установки свойств ключа
SERVER — в этом меню сосредоточены команды для работы с удаленным сервером ключей;
SEND ТО — позволяет послать ключи на выбираемый сервер (рис. 2.12);
SEARCH — с помощью этой команды можно попытаться найти на удаленном сервере ключ, задав соответствующие параметры (рис. 2.13);
UPDATE - позволяет обновить выбранный ключ, получив информацию с сервера;

стр 89¶

image.png

Рис. 2.12. Соединение с удаленным сервером

image.png

Рис. 2.13. Поиск ключа на удаленном сервере

GROUPS — в этом меню содержатся команды для работы с группами;
NEW GROUP, SHOW GROUPS, IMPORT GROUPS - позволяют соответственно добавить группу, показать группы, импортировал группы из файла.
Объединение владельцев ключей в группы позволяет легко и просто шифровать сообщения для отправки всем членам группы;
HELP - стандартное для Windows, позволяет получить справку PGPtray.
Загружается при запуске Windows. Для активизации меню достаточно нажать кнопкой мыши на значок рядом с часами (рис. 2.14).
В меню содержатся команды для выхода, запуска других компонентов PGP, редактирования буфера обмена, работы с буфером обмена (добавление ключа, расшифрование (проверка) подписи, зашифрование и подпись, просто подпись и просто зашифрование).
Если в используемом почтовом клиенте нет встроенных команд PGP, то можно работать с помощью PGPtray. Например, для подписи письма достаточно скопировать его в буфер и исполнить команд) Sign Clipboard, а затем вставить в тело письма уже подписанный текст (рис. 2.15).

стр 90¶

image.png

Рис. 2.14. Запуск PGP с использованием значка на панели задач

image.png

Рис. 2.15. Пример отправки письма с цифровой подписью
Аналогично получателю письма достаточно скопировать полученное письмо в буфер обмена и выбрать команду DECRIPT/VERIFY CLIPBOARD.
Естественно, в коллекции ключей должен быть открытый ключ владельца, подписавшего письмо (рис. 2.16, 2.17).
PGPtools. Этот компонент программы PGP представляет собой небольшую панель с кнопками, позволяющими выполнить нужное действие:открыть PGPkeys, зашифровать, подпись, зашифровать и подписать одновременно, расшифровать (проверить) подпись, затереть файл, затереть неиспользуемое дисковое пространство (рис. 2.18).

стр 91¶

image.png

Рис. 2.16. Пример получения письма с цифровой подписью

image.png

Рис. 2.17. Результаты проверки подписи

стр 92¶

image.png

Рис. 2.18. Компоненты панели PGPtools
Альтернативной программы PGPtools могут служить комынды, добавляющиеся при инсталляции PGP в контекстное меню работы с файлами и меню ФАЙЛА Проводника Windows.
Задание

  • 1.Ознакомиться со сведениями о программе PGP.
  • 2.Запустить программу PGPtools (с помощью меню ПУСК или значка PGPtray на панели задач), ознакомиться и отразить в отчете о лабораторной работе состав программных средств, входящих в систему PGP (при необходимости воспользоваться справкой о системе PGP).
  • 3.Создать криптографические ключи с помощью программы PGP-keys. Включить в отчет о лабораторной работе сведения о порядке создания ключей шифрования всистеме PGP, атакже копии используемых при этом экранных форм, а также ответы на вопросы:
  • как обеспечивается случайность выбираемых криптографических ключей в системе PGP;
  • как и где хранится секретный ключ пользователя всистеме PGP;
  • как может быть обеспечена в системе PGP возможность восстановления секретного ключа пользователя при его случайной утрате?
  • 4.Изучить (на примере обычных текстовых файлов и файлов изображений) способы шифрования и расшифрования файлов с помощью функций Encrypt и Decrypt программы PGPtools. Включить в отчет о лабораторной работе сведения о порядке шифрования и расшифрования файлов в системе PGP, а также копии используемых при этом экранных форм и ответы на вопросы:
  • какие дополнительные параметры шифрования могут быть использованы, в чем их смысл и возможное применение (обязательно проверить на примере и результаты проверки отразить в отчете);
  • как генерируется, как и где хранится ключ симметричного шифрования файла в системе PGP;
  • как можно обеспечить доступ к зашифрованному файлу со стороны других пользователей;
  • изменяется ли и как размер файла после его шифрования (привести конкретные примеры для разных типов файлов)?

стр 93¶

  • 5.Изучить (на примере документов из своей папки) способы полу чения и проверки электронной цифровой подписи под файлами с помощью функций Sign и Verify программы PGPtools. Включить в отчет сведения о порядке обеспечения аутентичности и целостности электронных документов в системе PGP, а также копии используемых при лом экранных форм и ответы на вопросы:
  • какие дополнительные параметры получения электронной цифровой подписи могут быть использованы, в чем их смысл и возможное применение (обязательно проверить на примере и результаты проверки отразить в отчете);
  • какова реакция программы на нарушение целостности подписанного документа (обязательно проверить на примере и результаты проверки отразить в отчете)?
  • 6.Изучить способы одновременного шифрования (расшифрования) и получения (проверки) электронной цифровой подписи всистеме PGP с помощью функций Encrypt Sign и Decrypt/Verify программы PGPtools. Включить в отчет сведения о порядке одновременного обеспечения конфиденцисиьности, аутентичности и целостности электронных документов в этой системе, а также копии используемых при этом экранных форм.
  • 7.Изучить способы надежного удаления файлов с конфиденциальной информацией с помощью функции Wipe программы PGPtools Включить в отчет сведения о порядке уничтожения конфиденциальных электронных документов в системе PGP, а также копии используемьх при этом экранных форм.
  • 8.Изучить способы надежного уничтожения остаточной информации, которая может содержать конфиденциальные сведения, с помощью функции Freespace Wipe программы PGPtools. Включить в отчет сведения о назначении и порядке использования этой функции программы, копии используемых в ней экранных форм и ответы на вопросы:
  • как достигается надежное уничтожение остаточной конфиденциальной информации всистеме PGP;
  • является ли подобный метод уничтожения абсолютно надежным и, если нет, как может быть обеспечено абсолютно надежное уничтожение остаточной информации?
  • 9.Изучить способы быстрого выполнения функций системы PGP с помощью программы PGPtray, ярлык которой размещен в правой части панели задач. Включить в отчет сведения о назначении и порядке этои программы, а также копии используемых экранных форм.

стр 94¶

  • 10.Изучить способы управления настройками системы POP при сс использовании в организациях с помощью программы PGPadmin (пройти все шаги диалога с мастером вплоть до последнего, на кто ром вместо кнопки "Save" нажать кнопку «Отмена»), Включить в отчет сведения о возможностях и порядке администрировании системы POP, копии используемых при этом экранных форм и ответы на вопросы
  • какие функции по управлению шифрованием и обеспечением целостности информационных ресурсов предоставляет администратору программа PGPadmin;
  • какие функции по управлению криптографическими ключами пользователей PGP предоставляет администратору программа PGPadmin;
  • какие возможности предоставляет программа PGPadmin по управлению доступными для пользователей функциями программы PGP и где сохраняется подобная информация?
  • 11.Включить в отчет о лабораторной работе ответы на контрольные вопросы, выбранные в соответствии с номером варианта, указанным преподавателем (табл. 2.9).

Таблица 2.9.

  • Номер варианта - Контрольные вопросы
  • 1, 5, 7 - Как выбрать длину криптографического ключа в системе PGP?
  • 2, 4, 6, 8 - В чем достоинства и недостатки криптографических методов зашиты информации?
  • 11, 13, 15, 17, 19 - Какие компьютерные системы называются безопасными?
  • 12, 14, 16 - В чем заключаются основные требования к защищенности компьютерных систем?
  • 20, 22, 24, 30 - Для выполнения каких требований к защищенности компьютерных систем могут применяться криптографические методы защиты?
  • 21, 23, 25 - Насколько, на ваш взгляд, надежны методы криптографической зашиты информации, используемые в программе PGP?
  • 3, 9, 18, 28 - Какими основными функциями защиты информации обладает программа PGP?
  • 10, 26, 27, 29 - Какой принцип лежит в основе функции надежного уничтожения остаточной конфиденциальной информации программы PGP?

стр 95¶

Список литературы¶

1.Бабаш А.В. Криптографические и теоретико-автоматные аспекты современной защиты информации. Криптографические методы защиты. М.: Изд. центр ЕАОИ. 2009.
2.Бабаш А.В., Шанкин Г.П. Криптография. / Под реакцией В.П. Шерстюка, Э.А. Применко. М.: СОЛОН-Р, 2002.
3.Башлы П.Н., Бабаш А.В., Баранова Е.К. Информационная безопастность: учеб.- практическое пособие. М.: Изд. ентр ЕАОИ, 2010.
4.Романец Ю.В., Тимофеев П.А., Шаньги В.Ф. Защита информации в компьютерных системах и сетях. М.: Радио и связь, 2001.
5.Смарт Н. Криптография. М.: Техносфера, 2006.

стр 96¶

часть 3¶

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

В современном мире значение криптографии выходит далеко за рамки обеспечения секретности данных. По мере все большей автоматизации передачи и обработки информации и интенсификации информационных потоков ее методы приобретают уникальное значение. Отметим некоторые современные направления ее приложения:

  • зашита от несанкционированного чтения, или обеспечение конфиденциальности информации;
  • зашита от навязывания ложных сообщений как умышленных, так и непреднамеренных;
  • идентификация (identification) — некое описательное представление какого-либо субъекта;
  • контроль целостности информации;
  • аутентификация (authentication) — проверка подлинности;
  • электронная цифровая подпись;
  • системы тайного электронного голосования;
  • электронная жеребьевка;
  • зашита документов и ценных бумаг от подделки.

Защита от несанкционированного чтения, или обеспечение конфиденциальности информации, обеспечивается путем шифрования информации с использованием современных симметричных или асимметричных криптографических систем.

Защита от навязывания ложных сообщений может быть обеспечена с помошью так называемой имитозащиты. Имитозащита — защита от навязывания ложных сообщений путем формирования в зависимости от секретного ключа специальной дополнительной информации, называемой имитовставкой, которая передается вместе с криптограммой, причем могут использоваться два варианта: либо вычисление имитовставки по открытому тексту, либо по шифротексту. Чем больше длина имитовставки, тем меньше вероятность того, что искажение шифротекста не будет обнаружено получателем.

Идентификация законных пользователей заключается в распознавании пользователей, после чего им предоставляются определенные права доступа к ресурсам.

стр 97¶

Контроль целостности информации - это обнаружение любых несанкционированных изменений информации, например данных или программ, хранящихся в компьютере. Имитозащита, в сущьности, является частным случаем контроля целостности информаии, передаваемой в виде шифротекста. В практических приложениях часто требуется удостовериться, что некоторые данные или программы не были изменены каким-либо несанкционированным способом, хотя сами данные не являются секретными и хранятся в открытом виде. Контроль ццелостности информации может быть основан и на использовании кодов для обнаружения и исправления ошибок.

Аутентификация установление санкционированным получателем того факта, что полученное сообщение послано санкционированным отпрапнтелем. Соблюдение заранее оговоренного протокола (набора правил и процедур) должно обеспечить максимальную вероятность этого факта. Очевидно, что при этом контролируется и целостность сообщения на возможность подмены или искажения. Принятый протокол должен обеспечить противодействие использованию потенциальным нарушителем ранее переданных сообщений. Это направление современной криптологии очень интенсивно развивается с момента открытия криптографии с открытым ключом (асимметричнои или двухключевой криптографии) в середине 1970-х гг. Если работа Шеннона «Теория связи в секретных системах» (1949) заложила фундамент формирования криптологии как науки, то открытие двухключевой криптографии ознаменовало собой ее переход в качественно новую фазу бурного развития и послужило основой для наиболее полного решения проблем аутентификации информации и разработки систем электронной цифровой подписи, которые призваны придать юридическую силу документам и другим сообщениям, переданным электронным способом.

Электронная цифровая подпись основывается на двухключевых криптографических алгоритмах, в которых предусматривается использование открытого и секретного ключей.

Системы тайного электронного голосования строятся на базе двухключевых алгоритмов, которые используют механизм слепой подписи, т.е. возможность подписать сообщение без ознакомления с его содержанием. Такие системы имеют большие перспективы для совершенствования системы политического управления современного общества с развитой информационной инфраструктурой.

Электронная жеребьевка сводится, например, к реализации ниже следующего алгоритма.

стр 98¶

  • 1.Абонент А выбирает случайное число $x_a$, двоичное представление которогоь имеет, например, 80 раззрядов, вычисляет значение некоторого односторонней фенкции $y_a=F(x_a)$ и сообщает величину $y_а$ абоненту В. Абонент В должен угадать, является ли число $x_a$ четным или нечетным.

  • 2.Поскольку используемая функция (известная и В) является односторонней, то В не может по значению $y_a$ определить $x_a$, по этому он должен угаывать четность. Пусть абонент В утверждает, что $x_a$ является четным и сообщает об этом абоненту А.

  • 3.Абонент А сообщает абоненту В число $x_a$/
  • 4.Абонент В вычисляет значение $a=F(x_a)$, если $у=y_a$, то В убеждается, что его партнер действительно предоставил для проверки первоначально выбранное число.

Очевидно, вариантов электронной жеребьевки может быть предложено множество, а практическое использование ее приложимо к любым спортивным жеребьевкам, розыграшам лотерей и пр.

Криптографическая защита документов и ценных бумаг от подделки является наиболее надежным современным способом пресечения их фальсифицирования. Криптографическая защита от подделки может осуществляться следующим образом. Считывается информация об уникальных особенностях данного носителя информации, формируется цифровой паспорт, включающий содержание документа и информацию о микроструктуре документа. Затем законный изготовитель документа, используя свой секретный ключ, вычисляет цифровую подпись паспорта и записывает на носителе паспорт и соответствующую ему цифровую подпись.

Проверка подлинности документа выполняется путем сканирования микроструктуры материального объекта, на котором сформирован документ, считывания записанной на нем информации и проверки цифровой подписи изготовителя документа по открытому ключу, который является общедоступным. Изготовление фальшивого документа на другом материальном объекте или модифицирование содержания документа и его цифрового паспорта практически неосуществимы без знания секретного ключа, с помощью которого формируется подпись. Любая подделка будет обнаружена путем считывания цифрового паспорта и цифровой подписи, сопоставления паспорта с содержанием документа и проверки подписи по открытому ключу.

Симметричные криптосистемы (с секретным ключом — secret key systems) — построены на основе сохранения в тайне ключа шифрования. Процессы шифрования и расшифрования используют одини тот же ключ. Скретность ключа является постулатом. Основная проблема при применении симметричных криптосистем для связи заключается в сложности передачи обоим сторонам секретного ключа.

стр 99¶

Однако данные системы обладают высоким быстродействием Раскрытие ключа злоумышленником грозит раскрытием только той информации. что была дешифрована на лом ключе. Американский AES Rijndael и Российский ГОСТ 28.147-89 — стандарты симметричного шифрования.

Симметричные криптосистемы в настоящее время принято подразделять на блочные и поточные.Блочные криптосистемы разбивают текст сообщения на отдельные блоки и затем осуществляют преобразование этих блоков с использованием ключа.

Блочные шифры оперируют с блоками открытого текста и используют простую замену блоков. Основные процедуры, используемые при получении таких шифров, сводятся к следующему:

рассеивание (diffusion) — изменение любого знака открытого текста или ключа влияет на большое число знаков шифротекста, что скрывает статистические свойства открытого текста; перемешивание (confusion) — использование преобразований, затрудняющих получение статистических зависимостей между шифротекстом и открытым текстом.

Поточные криптосистемы работают несколько иначе. На основе ключа системы вырабатывается некая последовательность — так называемая гамма, которая затем накладывается на текст сообщения. Таким образом, преобразование текста осуществляется как бы потоком по мере выработки гаммы.

Практически все современные блочные шифры являются композиционными, т.е. состоят из композиции простых преобразований. Само по себе преобразование может и не обеспечивать нужных свойств, но их цепочка позволяет получить необходимый результат.

стр 100¶

Лаблораторная работа № 9 шифр плейфера¶

Цель работы: изучение принципа шифрования информации с помощью биграммного шифра Плейфера.

Описание лабораторной работы. Шифр Плейфера. или квадрат Плейфера - ручная симметричная техники шифрования, в которой впервые использована замена биграмм. Изобретена в 1854 г. Чарльэом Уитстоном, но названа именем лорла Лайона Плейфера. которым внедрил данный шифр в государственные службы Великобритании Шифр предусматривает шифрование пар символов (биграмм) вместо одиночных символов, как в шифре подстановки и в более сложных системах шифрования Виженера. Таким образом, шифр Плейфера более устойчив к взлому по сравнению с шифром простой замены, так как затрудняется частотный анализ, который может быть про веден, но не для 26 возможных символов (латинский алфавит), а для 26 х 26 = 676 возможных биграмм. Анализ частоты биграмм возможен, но является значительно более трудоемким и требует намного больше го объема зашифрованного текста.

Шифр Плейфера использует матрицу 5x5 для латинского алфавита (для кириллического алфавита необходимо увеличить размер мл трицы до 6x6), содержащую ключевое слово или фразу. Для создания матрицы и использования шифра достаточно запомнить ключевое слово и четыре простых правила. Чтобы составить ключевую матрицу, в первую очередь нужно заполнить пустые ячейки буквами ключевого слова (не записывая повторяющиеся символы), потом заполнить оставшиеся ячейки матрицы символами алфавита, не встречающимися в ключевом слове, по порядку (в английских текстах обычно опускается символ «Q», чтобы уменьшить алфавит, в других версиях «I» и «J» объединяются в одну ячейку). Ключевое слово может быть записано в верхней строке матрицы слева направо либо по спирали из левого верхнего угла к центру. Ключевое слово, дополненное алфавитом, составляет матрицу 5x5 и является ключом шифра.

Чтобы зашифровать сообщение необходимо разбить его на биграммы (группы из двух символов), например HELLO WORLD становится НЕ LL OW OR LD, и отыскать эти биграммы в таблице. Два символа биграммы соответствуют углам прямоугольника в ключевой матрице. Определяем положения углов этого прямоугольника относительно друг друга, затем, руководствуясь ниже сформулированными четырьмя правилами, зашифровываем пары символов исходного текста.

стр 101¶

1.Если два символа биграммы совпалают, добавляем после псрвого символа «X». зашифровываем новую пару символов и продолжаем процесс шифрования. В некоторых вариантах шифра Плейфера вместо вставки «Х» используется «Q».

2.Если символы биграммы исходного текста встречаются в од-ной строке, то эти символы замешаются на символы, расположенные в ближайших столбцах справа от соответствующих символов. Если символ является последним в строке, то он заменяется на первый символ этой же строки.

3.Если символы биграммы исходного текста встречаются в одном столбце, то они замещаются на символы того же столбца, находящиеся непосредственно под ними. Если символ является нижним в столбце, то он заменяется на первый символ этого же столбца.

4.Если символы биграммы исходного текста находятся в разных столбцах и разных строках, то они замещаются на символы, находящиеся в тех же строках, но соответствующие другим углам прямоугольника.

Для расшифрования необходимо использовать инверсию этих четырех правил, откидывая символы «X» (или «Q»), если они не несут смысла в исходном сообщении.

Пример работы с программой

Используем ключ «playfair example», тогда матрица примет вид:

  • P L A Y F
  • I R E X M
  • B C D G H
  • J K N O S
  • T U V W Z

Зашифруем сообщение "Hide the gold in the thee stump"

  • HI DE TH EG OL DI NT HE TR EX ES TU MP

1.Биграмма HI формирует прямоугольник, заменяем ее на ВМ.
2.Биграмма DE расположена в одном столбце, заменяем ее на ND.
3.Биграмма ТН формирует прямоугольник, заменяем ее на ZB.
4.Биграмма EG формирует прямоугольник, заменяем ее на XD.
5.Биграмма OL формирует прямоугольник, заменяем ее на KY.
6.Биграмма DI формирует прямоугольник, заменяем ее на BE.
7.Биграмма NT формирует прямоугольник, заменяем ее на JV.
8.Биграмма НЕ формирует прямоугольник, заменяем ее на DM.
9.Биграмма TR формирует прямоугольник, заменяем ее на UI.
10.Биграмма EX находится в одной строке, заменяем ее на XM.
11.Биграмма ES формирует прямоугольник, заменяем ее на MN.
12.Биграмма TU расположена в одной строке, заменяем ее на UV.
13.Биграмма MP формирует прямоугольник, заменяем ее на IF.

стр 102¶

Получаем зашифрованный текст "BM ND ZB XD KY BE JV DM UI XM MN UV IF".
Таким образом, сообщение "Hide thr gold in the tree stump" преобразуется в "BMNDZBXDKYBEJVDMUIXMMNUVIF"

Пример работы с программой¶

Предположим, что необходимо зашифровать биграмму OR. Рассмотрим четыре случая;

image.png

OR заменяется на YZ.

image.png

OR заменяется на BY

image.png

OR заменяется на ZX.

image.png

OR заменяется на ZY. Главное окно программы ШИФР ПЛЕЙФЕРА (The Playfair cipher) имеет вид, представленный на рис. 3.1.

стр 103¶

image.png

Рис. 3.1. Главное окно программы

Интерфейс программы включает несколько полей.
1.Поле ввода ключевого слова.
2.Форма вывода текстовых сообщений.
3.Ключевая матрица.
4.Кнопка просмотра результатов шифрования в пошаговом режиме.
5.Поле для ввода исходного текста.
6.Поле для вывода преобразованного открытого текста.
7.Поле для вывода зашифрованного текста.

стр 104¶

Задание¶

Для выполнения лабораторной работы на компьютере необходимо установить программу Playfair.eхе, используемую для демонстрации метода шифрования Плейфера.
1.Для того чтобы начать работу с программой, необходимо ввести ключевое слово в соответствующее поле и нажать кнопку ОК. При этом первые ячейки ключевой матрицы займут символы ключевого слова (без повторяющихся символов).
Внимание*. Ключевое слово может состоять только из букв латинского алфавита (кроме буквы У), длина ключевого слова не более 25 символов.
2.В поле «Открытый текст» ввести (или же вставить комбинацией Ctrl-V) текст, который необходимо зашифровать. Вводить можно любые символы (буква J, при шифровании, заменится символом I). Нажать на кнопку «Зашифровать».
3.В поле «Преобразованный открытый текст» отобразится обработанный текст, а в поле «Зашифрованный текст» — результат шифрования.
4.С помощью переключателя «Шаг» можно последовательно наблюдать, каким образом шифруется каждая биграмма.
5.Сохранить в отчете экранные формы, демонстрирующие процесс шифрования исходного текста. Сделать выводы по проделанной работе.
6.Включить в отчет о лабораторной работе ответы на контрольные вопросы, выбранные в соответствии с номером варианта из табл. 3.1.

Таблица 3.1

  • Номер варианта - Контрольные вопросы
  • 1, 5, 7, 3, 9, 18, 28 - К каждому классу шифров относится шифр Плейфера? Укажите особенности подобных шифров.
  • 2, 4, 6, 8, 20, 22, 24, 26, 30 - Опишите процедуры шифрования и расшифрования по методу Плейфера
  • 11, 13, 15, 10, 17, 19, 27 - Оцените криптостойкость изученного метода шифрования и возможности использования подобных методов в современных криптосистемах
  • 12, 14, 16, 21, 23, 25, 29 - Зашифруйте свою фамилию шифром Плейфера вручную. Сравните результаты ручного шифрования и полученные с помощью программы Playfair.exe

стр 105¶

ЛАБОРАТОРНАЯ РАБОТА № 10¶

ДЕШИФРОВАНИЕ ШИФРА ПРОСТОЙ ПЕРЕСТАНОВКИ ПРИ ПОМОЩИ МЕТОДА БИГРАММ¶

Цель работы, знакомство с основами шифрования (расшифрования) данных методом перестановки. Освоение метода дешифрования данных с использованием биграмм.

Описание лабораторной работы¶

Описание метода шифрования. Перестановочные шифры используются с древних времен. Однако практически в любой современной симметричной криптосистеме можно найти элементы перестановок (например, в алгоритме DES— матрицы начальной и конечной перестановок). Приведем пример шифра перестановки. Выберем целое положительное число, скажем, 5(n); расположим числа от 1 до 5(n) в двухстрочной записи, в которой вторая строка — произвольная перестановка чисел верхней строки:

  • 1 2 3 4 5
  • 3 2 5 1 4

Эта конструкция носит название подстановки, а число 5 называется ее степенью.
Зашифруем фразу «СВЯЩЕННАЯ РИМСКАЯ ИМПЕРИЯ». В этой фразе 23 буквы. Дополним ее двумя произвольными буквами (например, Ь, Э) до ближайшего числа, кратного 5, т.е. до 25. Выпишем эту дополненную фразу без пропусков, разбивая ее на группы по пять символов в соответствии со степенью подстановки:
СВЯЩЕ ННАЯР ИМСКА ЯИМПЕ РИЯЬЭ
Буквы каждой группы переставим в соответствии с указанной двухстрочной записью по следующему правилу: первая буква встает на третье место, вторая — на второе, третья — на пятое, четвертая — на первое и пятая — на четвертое. Полученный текст выписывается без пропусков:

ЩВСЕЯЯННРАКМИАСПИЯЕМЬИРЭЯ
При расшифровании текст разбивается на группы по пять букв и буквы переставляются в обратном порядке: первая на четвертое место, вторая на второе, третья на первое, четвертая на пятое и пятая на третье. Ключом шифра является выбранная степень подстановки (в нашем случае число 5) и порядок расположения чисел в нижнем ряду двухстрочной записи.

стр 106¶

В соответствии с методом математической индукции можно легко убедиться в том. что существует 1 х 2 х 3 х ... x п(п!) вариантов заполнения нижней строки лвухстрочной записи. Таким образом, число различных преобразований шифра перестановки, предназначенного для шифрования сообщений длины л, меньше либо равно т! (заметим, что в это число входит и вариант преобразования, оставляющий все символы на своих местах).

Описание метода дешифрования. Сообщения, как бы сложны они ни были, можно представить в виде последовательности знаков. Эти знаки берутся из заранее фиксированного набора, например, кириллического алфавита или палитры цветов (красный, зеленый, синий). Разные знаки встречаются в сообщениях с разной частотой. Поэтому количество информации, передаваемой разными знаками, может быть разным. По известной формуле К. Шеннона количество информации определяется средним числом возможных вопросов с ответами ДА и НЕТ для того, чтобы угадать следующий символ сообщения.

Эффективное кодирование базируется на основной теореме Шеннона для канала без помех, суть которой сводится к следующему.

Суть теоремы Шеннона

Сообщения, составленные из букв некоторого алфавита, можно закодировать так, что среднее число двоичных символов на букву сколь угодно близко к энтропии источника этих сообщений, но не меньше этой величины.

Если буквы в тексте следуют независимо друг от друга, то среднее количество информации в сообщении, приходящееся на один знак, равно:

$H=P_i Log_2\{1/P_i\}$ , где P_i - частота появления символа i.
Отметим три особенности такого определения количества информации.

  1. Оно абсолютно не связано с семантикой, смыслом сообщения, и им можно пользоваться, даже когда точный смысл неясен.
  2. В нем предполагается независимость вероятности появления знаков от их предыстории.
  3. Заранее известна знаковая система, в которой передается сообщение, т.е. язык, способ кодирования.

стр 107¶

В каких единицах выражается значение количества информации по Шеннону? Точнее всего ответ на этот вопрос ласт теорема кодирования, утверждающая, что любое сообщение можно закодировать символами 0 и 1 1ак, что полученная длина сообщения будет сколь угодно близка сверху к H. Эта теорема позволяет назвать и единицу информации — бит.

Каждый, кто использовал, работая на персональном компьютере, архиваторы, знает, сколь эффективно они сжимают текстовые файлы, ничего при этом не теряя. Их работа лучшим образом демонстрирует теорему Шеннона в действии. Так как для русского текста, переданного лишь прописными буквами, H = 4,43, и это означает, что, в принципе, в русском алфавите можно было бы обойтись лишь 22 буквами или на 45% сократить длину файлов в кодировке ASCII. Таким образом, сообщения занимают места больше, чем это необходимо. Это явление называют избыточностью языка, благодаря чему искажения отдельных символов сообщения зачастую не разрушают содержания, что случилось бы при отсутствии избыточности.

Заметьте, у компьютера наиболее часто встречаемые символы ETOANIRSHDLU (даны в порядке убывания частот в английском языке) вынесены в центр клавиатуры, чтобы при наборе текстов движение пальцев было бы минимальным. Это расположение клавиш было предложено изобретателем линотипа Оттомаром Мергенталером, который использовал избыточность языка для облегчения работы. Утверждение, что вероятность появления символа в связном тексте не зависит от его предыстории, неверно и статистически, и лингвистически. Уже давно филологи заметили, что обычно за согласной буквой следует гласная, а за гласной согласная. Поэтому в конце XIX в. петербургский математик А. А. Марков предложил рассматривать текст как цепочку символов, где вероятность появления буквы зависит от предыдущей и только от нее. Таким образом, он стал рассматривать не вероятности $P_j$ появления в сообщении знака j , а вероятности $Р_ij$ появления знака j при условии, что перед ним стоит знак i. Теория марковских цепей оказалась чрезвычайно продуктивной для криптографии, и к отдельным ее применениям мы будем возвращаться позже. Пока же достаточно отметить, что первое свое опробование она имела при анализе текстов «Евгения Онегина» самим Андреем Андреевичем Марковым. Объем информации в одном символе марковской цепи определяется следующей формулой: $H=P_i \{ P_{i,j} * Log_2 \{1/P_{i,j}\}\}$

стр 108¶

В этом случае нет противоречия с требованием не зависимости знаков, так как знаком здесь счистается не отдельный символ, а биграмма. В приложении приведена таблица вероятности встречаемости биграмм в русском техническом тексте. Вероятности представлены десятью классами от 0 до 9 в порядке возрастания и образуют по средним значениям геометрическую прогрессию. Справа в этой таблице даны вероятности встречаемости отдельных символов. Так, из нее следует, что биграмма АЙ встречается довольно частто (класс 7), а биграмма ЙА почти совсем не попадается (класс 0).Среднее коллитчество инфорамции, приходящееся на один символ, определяемое по этой таблице, равно 3,5 бит. Описанное свойство зависимости буквы в тексте от предыдущей называется марковостью первого порядка,а независимость букв друг от друга - марковостью нулевого порядка. Естественно, что можно рассматривать также и марковость высших порядков, например второго, когда буква зависит от двух предыдущих. Для того чтобы оценить порядок марковости в связанном тексте, можно провести случайное моделирование, используя сначала вероятности отдельных букв, потом биграмм, потом биграмм, триграмм и т.д. Очевидно, что увеличение порядка марковости повышает схожесть отрывка случайного текста с естественным. Повышением порядка марковости позволяет доупорядочить объем информации в сообщениях, но это очень свкольская тема и есть масса различных точек зрения на нее.

Действительно, вводя понятие шенноновской меры информации, мы отказались от понятия смыста, который связывает символы в слоги, слоги в слова, слова в предложения, а предложения в сообщение. Практические нет разницы, как сказать ребенку:"Нужно есть кашу!" или "Надо есть кашу!", а вот шенноновский подход эти сообщения считает различными. Поэтому оценка объема информации, содержащейся в сообщении и полученной по приведенным формулам, явно завышена. Возьмем пример шифра двойной перестановки. Пусть имеется шифровка АЗЮЖЕ СШГГООИПЕР, которая так укладывается в таблицу 4 на 4:

  • _ 1 2 3 4
  • 1 А З Ю Ж
  • 2 Е _ С Ш
  • 3 Г Т О О
  • 4 И П Е Р

стр 109¶

Рассматривая маловероятные сочетания букв, легко найти истинную последовательность столбцов. Так, сочетание ГТ в тертьей строке шифровки укащывает на то, что после первого столбца врядли следует второй столбец. Рассчитаем статистически, какой столбец скорее всего следует за первым. Для этого воспользуемся таблицей логарифмов вероятностей биграмм руссеого текста, приведенной в приложении. Вероятность следования одного столбца за другим равна сумме коэффициентов биграмм в строках этих столбцов. Для коэффициетнов следования за первым столбцом второй, третий и четвертый имеем выражения: $$k(1-2)=k(АЗ)+k(Е)+k(ГТ)+k(ИП)=7+9+0+5=21$$ $$k(1-3)=k(АЮ)+k(ЕС)+k(ГО)+k(ИЕ)=6+8+8+8=30$$ $$k(1-4)=k(АЖ)+k(ЕШ)+k(ГО)+k(ЯР)=7+5+8+7=27$$

В нашем случае наиболее вероятно, что после столбца 1 следует столбец 3. Для такой небольшой таблицы шифрования, которую имеем, можно перебрать все варианты перестановок — их всего лишь 24. В случае большого числа столбцов целесообразно оценить вероятности пар сочетаний разных столбцов и решить оптимизационную задачу, которая укажет перестановку столбцов, даюшую фрагменты естественного текста с большей вероятностью. В нашем случае наилучший результат достигается при расстановке столбцов (2 4 1 3), что примерно вдвое по вероятностной оценке достовернее ближайшей к ней по вероятности расстановки (4 1 3 2). После того как столбцы шифровки расставлены, не составит труда правильно расставить и ее строки по смыслу фрагментов текста:

  • _ 2 4 1 3
  • 1 З Ж А Ю
  • 2 _ Ш Е С
  • 3 Т О Г О
  • 4 П Р И Е

Текст в ней уже читается и, расставив строки в порядке (4 1 2 3), получим расшифровку ПРИЕЗЖАЮ ШЕСТОГО. Можно привести еще один пример с использованием биграмм. Зашифруем текст методо перестановки: ТЕОРИЯ ИНФОРМАЦИИ . Дополним текст до полной матрицы при помощи некоторых случайных букв, в нашем случае "ПОР".

стр 10


  • Т Е О Р -
  • И Я И -
  • Н Ф О Р -
  • М А Ц И -
  • И П О Р -

Ключ:

  • 1 2 3 4 -
  • 4 2 1 3 -

Получим: Зашифрованный текст ОЕРТЯИИОФРНЦАИМОПРИ

  • О Е Р Т -
  • _ Я И И -
  • О Ф Р Н -
  • Ц А И М -
  • О П Р И -

Для упрощения задачи предположим, что длина ключа известна. Далее, как и и предыдущем примере, необходимо оценить вероятности биграмм в столбцах и решить оптимизационную задачу. Например, для первого столбца: $$k(1-2)=k(ОЕ)+k(Я)+k(ОФ)+k(ЦА)+k(ОП)= 6+0+2+5+4=17$$ $$k(1-3)=k(ОР)+k(И)+k(ОР)+k(ЦИ)+k(ОР)= 8+8+8+7+8=39$$ $$k(1-4)=k(ОТ)+k(И)+k(ОН)+k(ЦМ)+k(ОИ)= 8+8+7+0+6=29$$

Таким образом, самый большой коэффициент следования у столбцов 1-3, проводя дальнейшие вычисления, несложно будет определить и весь ключ.

Применение данного метода достаточно эффективно при дешифровании осмысленных сообщений, так как при шифровании методом перестановки вероятностная характеристика символов в осмысленном сообщении сохраняется, что существенно упрощает взлом.

Описание демонстрационной программы. Программный модуль cns.exe используется дли автоматизации процесса шифрования (расшифрования) методом перестановки и вскрытия шифротекстов методом биграмм Главное окно программы и окно дешифрования представлены на рис. 3.2.

стр 111¶

image.png

image.png

Рис. 3.2. Главное окно программы и окно дешифрования

стр 112¶

Дополнительные сведения о программе и авторах программной реализации представлены на рис. 3.3.

image.png

Рис. 3.3. Дополнительные сведения о программе и авторах программной реализации.
Задание
Для выполнения лабораторнной работы на компьютере необходимо установить файл cns.exe.
Запустить программу cns.exe, предназначенную для демонстрации шифрования (дешифрования) данных методом перестановки и освоения метода дешифрования данных с использованием биграмм.
1.Зашифровать (расшифровать) вводимый с клавиатуры тскст и тексты, открываемые из файлов.
Внимание! Предварительно просмотрите приложенные к программе тестовые примеры о формате и структуре шифруемых файлов. Привести в отчете экранные формы выполняемых действий.

стр 113¶

  1. Произвести попытку дешифрования данных, зашифрованных в n. 1 (если попытка вскрытый криптограмм не удалась, сделать выводы о причинах неудачи). Принести в отчете экранные формы.

  2. Добиться правильного дешифрования зашифрованного текста (подбором длины и содержания текста, длины ключа шифрования). Приложить экранные формы, сделать выводы об особенностях исследуемого метода вскрытия криптограмм.

  3. Сохранить в отчете экранные формы, демонстрирующие процесс шифрования, расшифрования и дешифрования.

  4. Включить в отчет о лабораторной работе ответы на контрольные вопросы, выбранные в соответствии с номером варианта из табл. 3.2.

Таблица 3.2.

  • Номер варианта - Контрольные вопросы -
  • 1, 5, 7, 3, 9, 18, 28 - В чем заключается описанный метод вскрытия криптограмм? -
  • 2, 4, 6, 8, 20, 22, 24, 26, 30 - В чем заключается метод шифрования (расшифрования) с использованием перестановок? Какие перестановочные методы шифрования вы знаете? -
  • 11, 13, 15, 10, 17, 19, 27 - Приведите примеры использования алгоритма перестановки в современных симметричных криптосистемах -
  • 12, 14, 16, 21, 23, 25, 29 - Какие требования к исходным текстам и длинам ключей шифрования обеспечат максимальный эффект для использо-вания изученного метода дешифрования? -

стр 114¶

Таблица коэффициентов встречаемость биграмм в тексте

  • _ - АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШТЬЫЬЭЮЯ - Процент
  • A - 278677774777883767826677550000679 - 71
  • Б - 711016226056357275070541055722035 - 13
  • В - 805048037167568466660301300820048 - 38
  • Г - 601165006045448070060012000000004 - 10
  • Д - 816348107047178465271333400640457 - 25
  • Е - 55678666477889658893656560011559 - 73
  • Ж - 600067217050271012130000000020002 - 8
  • З - 846264116155667150060021002620046 - 14
  • И - 667668577776885578815777630100679 - 64
  • Й - 003030000036540006600012300000008 - 11
  • к - 815116527127058076670060100000007 - 29
  • л - 841218618044167003363003110680786 - 31 -
  • м - 757228017044768513161000000730068 - 32 -
  • н - 903368119060178005765253000850467 - 50 -
  • 0 - 288886776878876788832567650015259 - 89 -
  • п - 700008047036148494562010000453044 - 28 -
  • р - 916448908051668426673542420740167 - 48 -
  • с - 646257207078668756963515500561387 - 43 -
  • т - 827148008064569388460004021780158 - 60 -
  • у - 344667653365560677715506360000748 - 19 -
  • ф - 600005006002206040354000000100002 - 4 -
  • x - 433004003011056053130020001000008 - 6 -
  • ц - 506006007000003000040000000500005 - 6 -
  • ч - 701008007061062010730001300130004 - 12 -
  • ш - 500006007033034030340000000040005 - 3 -
  • щ - 600007006000020020040000000040101 - 3 -
  • ъ - 000004000000000000000000000000032 - 1 -
  • ы - 147357151755621555600705410100018 - 18 -
  • ь - 010003071060471006400001610000628 - 12 -
  • э - 004001000265210201704300000000001 - 5 -
  • ю - 050020120410000003700006170010307 - 6 -
  • я - 015256250223650144700443040000649 - 18 -
  • ПробелЪ - 789787588386899989877678511218260 - 138 -

стр 115¶

ЛАБОРАТОРНАЯ РАБОТА № 11

СЕТЬФЕЙСТЕЛЯ

Цель работы, изучение принципа работы сети Фейстеля.

Описание лабораторной работы. В 1971 голу Хорст Фейстель (Hont Feistel) запатентовал два устройства Для реализации различных алгоритмов шифрования, получившие название «Люцифер» (Lucifer) Одно из устройств использовало конструкцию, впоследствии названную сетью Фейстеля (Feistel cipher (шифр), Feistel network). Работа над созданием новых криптосистем велась Фейстелем в стенах IBM вместе с Доном Копперсмитом (Don Coppersmith). Проект «Люцифер» был скорее экспериментальным, но стал базисом для алгоритма DES (Data Encryption Standard). В 1973 году Хорст Фейстель в журнале Scientific American опубликовал статью «Криптография и Компьютерная безопасность» (Cryptography аnd Computer Privacy), в которой раскрыл ряд важных аспектов шифрования и привел описание первой версии проекта «Люцифер».

Описание алгоритма. Сеть Фейстеля подразумевает разбиение обрабатываемого блока данных на несколько субблоков (чаше всего — На два), один из которых обрабатывается некоей функцией f(а) и накладывается на один или несколько остальных субблоков. На рисунке 3.4 приведена наиболее часто встречающаяся структура алгоритмов на основе сети Фейстеля.

image.png

Рис. 3.4. Сеть Фейстеля

Блок открытого текста делится на две равные части А — левая (L) и В — правая (R), в каждом раунде i (i = 1 ... n — номер раунда) вычисляется $L_i=R_{i-1} \bigoplus f(L_{i-1},K_{i-1})$ ; $R_{i-1}=L_{i-1}$ , где F() - некоторая функция, а K_{i-1} - ключ i-го раунда.

стр 116¶

Результатом выполнения n раундов является ($L_n$, $R_n$), но обычно в n-ом раунде перестановка L„ и Rn не производится, что позволяет использовать ту же процедуру и для расшифрования, просто инвертировав порядок использования раундовой ключевой информации: $L_{i-1}=R_i \bigoplus f(L_{i},K_{i-1})$; $R_{i-1}=L_i$

Одно из преимуществ такой модели - обратимости алгоритма независимо от используемой функции f, причем она может быть сколь угодно сложной. Надежность алгоритма. Сети Фейстеля были широко изучены криптографими в силу их обширного распространения. В 1988 году Майкл Лоби (Michael Luby) и Чарльс Ракофф (Charles Rackoff) провели исследования сети Фейстеля и доказатели, что если раундовая функция является криптостойкой псевдослучайной и используемые ключи независимы в каждом раунде, то трех раундов будет достаточно для того, чтобы блочный шифр является псевдослучайной перестановкой. Иногда сеть Фейстеля в западной литературе назувают Luby - Rackoff block cipher в честь Люби и Ракоффа, которые проделали большой объем теоретических исследований в этой области.

В дальнейшем, в 1997 г. Мони Наор (Moni Naor) и Омер Рейнголд (Omer Reingold) предложили упрощенный вариант конструкции Люби - Ракоффа из четырех раундов, где в качестве первого и последнего раунда используют две попарно независимые перестановки. Два средних раунда конструкции Наора - Рейнголда идентичны раундам в конструкции Люби - Ракоффа. Во многих блочных шифрах на основе сети Фейстеля были найдены те или иные уязвимости, однако в ряде слуяаев эти уязвимости явзяются чисто теоретическими и при нынешней производительности компьютеров использовать их на практиче для взлома невозможно. Симметричные криптоалгоритмы, использующие сеть Фейстеля. Так как большинство блочных шифров создано на основе сети Фейстеля, коротко упомянаем некоторые из них.

$$DES$$

DES работает с 64-битовым блоком открытого текста. После первоначальной перестановки блок разбивается на правую и левую половины длиной по 32 бита. Затем выполняются 16 этапов одинаковых действий, определяемых функцией f, в которых данные объединяются с ключом. После шестнадцатого этапа правая и левая половины объединяются и алгоритм завершается заключительной перестановкой (обратной по отношению к первоначальной).

стр 117¶

На каждом этапе биты ключа сдвигаются и затем из 56 битов ключа выбираются 48 битов для цикловых ключей Правая половина данных увеличивается до 48 битов с помощью перестановки с расширением, объединяется посредством XOR с 48 битами смешенного и переставленного ключа, проходит через восемь S-блоков, образуя 32 новых бита, и переставляется снова. Эти четыре операции и выполняются функцией f . Затем результат функции f объединяется с левой полови ной с помощью другого XOR. В итоге этих действий появляется новая правая половина, а старая правая половина становится новой левой Эти действия повторяются 16 раз, образуя 16 циклов. $$FEAL$$

В качестве входа процесса шифрования используется 64-битовый блок открытого текста. Сначала блок данных подвергается операции XOR с 64 битами ключа. Затем блок данных расщепляется на левую и правую половины. Объединение левой и правой половин с помошью XOR образует новую правую половину. Левая половина и новая правая половина проходят через n этапов (первоначально четыре). На каждом этапе правая половина объединяется с помощью функции/с шестнадцатью битами ключа, и с помощью XOR — с левой половиной, создавая новую правую половину. Исходная правая половина (на начало этапа) становится новой левой половиной. После n этапов (левая и правая половины не переставляются после n-го этапа) левая половина снова объединяется с помощью XOR с правой половиной, образуя новую правую половину, затем левая и правая соединяются вместе в 64-битовое целое. Блок данных объединяется с помощью XOR с другими 64 битами ключа, и алгоритм завершается.

Функция f использует 32 бита данных и 16 битов ключа и смешивает их вместе. Сначала блок данных разбивается на 8-битовые подблоки, которые затем объединяются с помощью XOR и меняются местами. $$RC2$$

RC2 — это шифр с 64-битовым блоком и переменной длиной ключа, разработанный как альтернатива DES. В соответствии с утверждениями компании RSA Data Security программные реализации RC2 в три раза быстрее DES. Алгоритм может использовать ключ переменной длины, от 0 байтов до максимальной длины строки, поддерживаемой компьютерной системой, причем скорость шифрования не зависит от размера ключа. Этот ключ предварительно используется для заполнения 128-байтовой таблицы, зависящей от ключа. RC2 не использует 5-блоков, здесь используются две операции — «смешивание» и «перемешивание» (mix и mash), для каждого этапа выбирается одна из них.

стр 118¶

RC2 не является итеративным блочным шифром. Это предполагает, что RC2 более устойчив к дифференциальному и линейному криптоанализу, чем другие блочные шифры, безопастность которых опирается на клпировании хемы DES. $$ГОСТ-28147-89$$

ГОСТ является 64-битовым алгоритмом с 256-битовым ключом. ГОСТ также использует дополнительный ключ в виде восьми различных S-блоков, функционирование которых рассматривается ниже. В процессе шифрования на 32 этапах последовательно выпллняется алгоритм шифрования Фейстеля. Для шифрования текст сначала разбивается на левую половину L и правую половину R. На этапе i алгоритма ГОСТ используется подключ $K_i$ и выполняются следующие действия: $L_i=R_{i-1}$; $R_i=L_{i-1}f(R_{i-1},K_i)$.

Функция f проста. Сначала первая половина и i-й подключ складываются по модулю $2^{32}$ . Результат разбивается на восемь четырехбитовых подблоков, каждый из которых поступает на вход своего S-блока. ГОСТ использует восемь различных S-блоков, первые четыре бита попадают в первый S-блок, вторые четыре бита -- во второй S-блок, и т.д. Каждый S-блок представляет собой перестановку чисел ОТ 0 ло 15.

В этом случае, если на входе S блока 0, то на выходе 7. Если на входе 1, на выходе 10, и т.д. Все восемь S-блоков в ГОСТ-28147 89 различны, они фактически являются дополнительным ключевым материалом. S-блоки должны храниться в секрете.

Выход всех восьми S- блоков объединяются в 32- битовое слово, затем все слово циклически сдвигается влево на 11 битов. Наконец результат объединяется в помощью XOR с левой половиной и получается новая правая половина, а правая половина становится новой левой половиной. Количество таких циклов - 32. Генерация подключей проста. 256- битовый ключ разбивается на восемь 32- битовых блоков: k1, k2, ... k8. На каждом этапе используется свой подключ. Расшифрование выполняется также как и шифрование, но инвертируется порядок подключей $k_i$.

ГОСТ-28147-89 не определяет способ генерации S-блоков, говорится только, что блоки должны быть предоставлены каким-то образом. Это породило домыслы о том, что советский производитель может поставлять хорошие S-блоки "хорошим" организаиям и плохие S-блоки тем организациям, которых производитель собирается надуть,

стр 119¶

вследствии чего неофициальные переговоры с российским производителем микросхем ГОСТ выявил другую альтернативу. Производитель создает перестановки S-блока самостоятельно с помощью генератора случайных чисел.

Программная реализация сети фейстеля¶

//Функция преобразования подблока по ключу (зависит от конкретного алгоритма)
//subblock - преобразуемый подблок key - ключ возвращаемое значение - преобразованный блок.

int f(int subblock, int key);

//Шифрование открытого текста. left - левый входной подблок. right - правый входной подблок. //* key - массив ключей (по ключу на раунд). Rounds - колличество раундов

In [1]:
void crypt(int *left,int *right, int rounds, int *key)
{
    int i, temp;
    for(i=0;i<rounds; i++)
    {
        temp= *right ^ f(*left,key[i]);
        *right = *left;
        *left=temp;
    }
}
  Cell In[1], line 1
    void crypt(int *left,int *right, int rounds, int *key)
         ^
SyntaxError: invalid syntax

//Расшифровывание текста left - левый зашифрованный подблок, right - правый зашифрованный подблок

In [1]:
void decrypt(int *left, int *right, int rounds, int *key)
{
    int i, temp;
    for(i=rounds -1; i>=0;i--)
    {
        temp = * left ^ f(*right, key [i]);
        *left=*right;
        *right=temp;
    }
}
  Cell In[1], line 1
    void decrypt(int *left, int *right, int rounds, int *key)
         ^
SyntaxError: invalid syntax

стр 120¶

Описание программного интерфейса. Главное окно программы представлено на рис. 3.5.

image.png

Рис. 3.5. Главное окно программы

Демонстрация. Рестарт - генераия случайного ключа (64 бит) и входной информации (64 бит). Шаг вперед - переход к следующему раунду. Шаг назад - переход к предыдущему раунду. Выход - выход из программы. Для удобства работы с программой основные функции продублированны кнопками в основном окне программы.

Помощ. Справка - содержит теоретическую информацию об алгоритме шифрования сеть Фейстеля и об использовании программы (рис. 3.6.). Информация о разработчике представлена на рис. 3.7.

стр 121¶

Справка по программе. Учебная сеть Фейстеля. Разрядность блока данных - 64 бита. То есть две половинки по 32 бита. 8 раундов преобразования. Разрядность ключа - 64 бита. Используется по 8 бит на каждый раунд

Порядок работы программы. В начале случайным образом генерируется генерируется и входная информация, затем проходит 8 раундов зашифровывания и следом 8 раундов расшифровывания, при этом промежуточные результаты заносят в протокол. Последняя строка (раунд 8) в протоколе зашифровыванная представляет собой шифротекст, а последняя строка в протокола расшифрования - снова открытый текст.

Далее при помощи кнопок "Впепред" и "Назад" можно по шагам исследовать каждый раунд. На схеме сети при этом отображается входная и выходная информация раунда использованная ключевая информация и результат преобразования F. Кнопка "Рестарт" приведет к повторению всех действий с самого начала. Кнопка Ок!

Рис. 3.6. Справочная информация.

О программе. Feistel. Программа для демонстрации работы учебной чети Фейстеля. Разработал Вячеслав Лазарев. 2011. Кнопка Ок!.

Рис. 3.7. Информация о разработчике.

После "Ключевая информация" содержит случайно сгенерированный ключ. После "Входная информация" содержит случайно сгенерированную информация длинной 64 бит.

стр 122¶

Поле "Входная информация" содержит зашифрованную информацию. Поле "Зашифровывание" отображает процесс шифрования, состоящий из восьми последовательных раундов. Порядок выполнения программы. Нажать кнопку "Рестарт", далее, используя клавиши вперед (назад), ознакомиться с процессом шифрования входной информации.

Задание

Для выполнения лабораторной работы на компьютере необходимо установить программу Feistei. ехе. Запустить программу Feistei. ехе. используемую лля демонстрации работы сети Фейстеля.

  1. Чтобы начать работу с программой, необходимо в Меню «Демонстрация» открыть вкладку <Рестарт> или нажать кнопку • Рестарт».
  1. С помощью переключателя «Шаг вперед» или кнопки «Вперед» можно последовательно наблюдать, каким образом шифруется на каждом цикле преобразования сети Фейстеля блок исходного текста.

  2. Сохранить в отчете экранные формы, демонстрирующие процесс пошаговой работы сети Фейстеля при шифровании исходного текста.

  3. Произвести вручную процесс шифрования в одном цикле и убедиться в том, что результаты, демонстрируемые программой, совпадают с произведенными расчетами. Сделать выводы по проделанной работе.

  4. Включить в отчет о лабораторной работе ответы на контрольные вопросы, выбранные в соответствии с номером варианта из табл. 3.3.

  • Номер варианта - Контрольные вопросы
  • 1,5,7,3,9,18,28 - В каких современных симметричных системах шифрования используется сеть Фейстеля?
  • 2, 4, 6. 8, 20, 22, 24, 26, 30 - В чем отличие сбалансированной сети Фейстеля от несбалансированной сети Фейстеля? В каких блочных криптосистемах используется сбалансированная сеть?
  • 11, 13, 15, 10, 17, 19, 27 - В каких современных симметричных системах шифрования не используется сеть Фейстеля? Какие механизмы шифрования используются в этих криптографических системах?
  • 12, 14, 16, 21, 23, 25, 29 - Какой длины используются блоки для шифрования и цикловые ключи в блочных криптосистемах DES, FIAL, Blowfish, ГОСТ-28147-89?

стр 123¶

ЛАБОРАТОРНАЯ РАБОТА № 12

РЕГИСТРЫ СДВИГА С ЛИНЕЙНОЙ ОБРАТНОЙ СВЯЗЬЮ КАК ГЕНЕРАТОРЫ ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ

Цель работы: изучение принципа работы генератора псевдослучайных последовательностей, лснованного на регистре сдвига с линейной обратной связью.

Описание лабораторной работы

Общие сведения о регистрах сдвига с линейной обратной связью. Последовательности регистров сдвига используются как в криптографии, так и в теории кодирования. Их теория прекрасно проработана, потоковые шифры на базе регистров сдвига являлись рабочей лошадкой военной криптографии задолго до появления электроники.

Регистр сдвига с обратной связью (далее РгСсОС) состоит из двух частей: регистра сдвига и функции обратной связи (рис. 3.8). Регистр сдвига представляет собой последовательность битов. Количество битов определяется длиной сдвигового регистра, если длина равна л битам, то регистр называется n-битовым сдвиговым регистром. Всякий раз, когда нужно извлечь бит, все биты сдвигового регистра сдвигаются вправо на одну позицию. Новый крайний левый бит яапяется функцией всех остальных битов регистра. На выходе сдвигового регистра оказывается один, обычно младший значащий, бит. Периодом сдвигового регистра называется длина получаемой последовательности до начала ее повторения.

image.png

Рис. 3.8. Регистр сдвига с обратной связью

Регистры сдвига очень быстро нашли применение в потоковых шифрах, так как они легко реализовывались с помощью цифровой аппаратуры. В 1965 году Эрнст Селмер (Ernst Selmer), главный криптограф норвежского правительства, разработал теорию последовательности регистров сдвига. Соломон Голомб (Solomon Golomb), математик NSA, написал книгу, излагающие некоторые свои результаты и результаты Селмера. Простейшим видом регистра сдвига с обратной связью является регистр сдвига с линейной обратной связью (linear feedback shift register, далее LFSR или РгСсЛОС). Обратная связь таких регистров

стр 124¶

представляет собой просто XOR (сложение по модулю два) некоторых битов регистра, перечень этих битов называется отводной последовательность (tap sequence). Иногда такой регистр называется конфигурацией Фиббоначи. Из-за простоты последовательности обратной связи для анализа РгСсЛОС можно использовать довольно развитую математическую теорию. Проанализировав полученные выходные последоваетльности, можно убедиться в том, что эти последовательности достаточно случайны, чтобы быть безопастными. РгСсЛОС чаще других сдвиговых регистров используется в криптографии.

image.png

Рис. 3.9. РгСсЛОС Фиббоначи

В общем случае n-битовый РгСсЛОС может находиться в одном из $N=2^n-1$ внутренних состояний. Это означает, что теоретически такой регистр может генерировать псевдослучайную последоваетльность с периодом $T=2^n-1$ битов. (Число внутренних состояний и период равный $N=T_max=2^n-1$, потому что заполнение РгСсЛОС) нулями приведет к тому что сдвиговый регистр будет выдавать бесконечную последовательность нулей, что абсолютно бесполезно.) Только при определенных последовательностях РгСсЛОС циклически пройдет через все $2^n-1$ внутренние состояний, такие РгСсЛОС называются РгСсЛОС c максимальным периодом. Получившийся результат называется M-последовательностью.

Пример. На рисунке 3.10 показан четырехбитовый РгСсЛОС с отводом от первого и четвертого битов. Если его проинициализировать значением 1111, то до повторения регистр будет принимать следующие внутренние состояния (табл. 3.4.)

image.png

Рис. 3.10. Четырехбитовый РгСсЛОС с отводом от первого и четвертого битов

стр 125¶

Номер такта сдвига
(внутреннего состояния)
Состояние
регистра
$Т_1$
$Т_2$$Т_3$$Т_4$Выходной
бит
Инициальное значение$1$$1$$1$$1$_
$1$$1$$0$$1$$1$$1$
$2$$1$$0$$1$$1$$1$
$3$$0$$1$$0$$1$$1$
$4$$1$$0$$1$$0$$0$
$5$$1$$1$$0$$1$$1$
$6$$0$$1$$1$$0$$0$
$7$$0$$0$$1$$1$$1$
$8$$1$$0$$0$$1$$1$
$9$$0$$1$$0$$0$$0$
$10$$0$$0$$1$$0$$0$
$11$$0$$0$$0$$1$$1$
$12$$1$$0$$0$$0$$0$
$13$$1$$1$$0$$0$$0$
$14$$1$$1$$1$$0$$0$
$15$ (возврат в инициальное состояние)$1$$1$$1$$1$$1$
$16$ (повтор состояний)$0$$1$$1$$1$$1$

Выходной последовательностью будет строка младших значащих битов: 111101011001000 с периодом T=15, общее число возможных внутренних состояний (кроме нулевого) $N=2^4-1=16-1=15=T_max$ , следовательно, выходная последовательность - M - последовательность. Для того чтобы конкретный РгСсЛОС имел максимальный период, многочлен, образованный из отводной последовательности и константы 1, должен быть примитивным по модулю 2. Многочлен представляет в виде суммы степеней, например многочлен степени n представляется так:

$a_n * x^n + a_{n-1} * x^{n-1} + ... + a_1*x^1 + a_0*x^0= a_n*x^n+a_{n-1}*x^{n-1}+...+a_1*x+a_0$

где $a_i=\{0,1\}$ для $i=1,..., n$ ; $x^i$ - указывает разряд.

Степень многочлена является длиной сдвигового регистра. Примитивный многочлен степени п — это неприводимый многочлен, который является делителем $x^{2n-1}+1$, но не является делителем $x^d+1$ для всех d, являющихся делителями $2^n-1$. В обшем случае не существует простого способа генерировать примитивные многочлены данной степени по модулю 2. Проще всего выбирать многочлен случайным образом и проверять, не является ли он примитивным. Это нелегко и чем-то похоже на проверкубне является ли простым случайно выбранное число - но многие математические пакеты программ умеют решать такую задачу. Некоторые, но, конечно же не всеб многочлены различных степеней, примитивные по модулю 2, приведены далее. Например, запись (32,1,5,3,2,1,0) означаетб что следующий многочлен примитивен по модулю 2: $x^32+x^7+x^5+x^3+x^2+x+1$.

стр 126¶

Это можно легко обобщить для РгСсЛОС с максимальным периодом. Первым числом является длина РгСсЛОС. Последнее число всегда равно 0, и его можно опустить. Все числаб за исключением 0, задают отводную последовательность, отсчитываемую от левого края сдвигового регистра. Другими словамиб члены многочлена с меньшей степенью соответствуют позициям ближе к правому краю регистра.

Продолжая примерб запись (32,7,5,3,2,1,0) ознначает, что для взятого 32-битового сдвигового регистра новый бит генерируется с помощью XOR тридцать второго, седьмого,пятого,третьего, второго и первого битов, получающийся РгСсЛОС будет иметь максимальную длину, циклически проходя до повторения через $2^32-1$ значений.

image.png

Рис. 3.11. 32-битовый РгСсЛОС с максимальной длиной

Рассмотрим программный код РгСсЛОС, у которого отводная последовательность характеризается многочленом (32,7,5,3,2,1,0). На языке С это выглядит следующим образом:

In [3]:
int LFSR()
{
    static unsigned long ShiftRegister =1;
    //Все, кроме себя 0.
     ShiftRegister = (((
         (ShiftRegister >> 31)^(ShiftRegister >>6)^(ShiftRegister >>4)^(ShiftRegister >>2)^(ShiftRegister >>1)
         ^ShiftRegister)&0x00000001)<<31)|(ShiftRegister>>1);
    return ShiftRegister & 0x00000001;
}
  Cell In[3], line 1
    int LFSR()
        ^
SyntaxError: invalid syntax

стр 127¶

Если сдвиговый регистр длинее компьютерного слова, код усложняется, но не на много. В приложении В приведена таблица некоторых примитивных многочленов по модулю 2, будем использовать ее в дальнейшем для выявления некоторых свойств этих многочленов, а также в программной реализации для задания отводной последовательности.

Следует обратить внимание, что у всех элементов таблицы нечетное число коэффициентов. Такая длинная таблица приведена для дальнейшей работы с РгСсЛОС, так как РгСсЛОС часто используется для работы с потоковыми шифрами и в генераторах псевдослучайных чисел. В нашеем случае можно использовать многочлены со старшей степенью не более семи.

Если p(x) примитивен, то примитивен и $x^n*p(1/x)$ , поэтому каждый элемент таблицы на самом деле определяет два примитивных многочлена. Например, если (a,b,0) примитивен,то примитивен и (a,a-b,0). Если примитивен (a,b,c,d,0), то примитивен и (a,a-d,a-c,a-b,0). Математически: если примитивен $x^a+x^b+1$, то примитивен и $x^a+x^{a-b}+1$, если примитивен $x^a+x^b+x^c+x^d+1$, то примитивен и $x^a+x^{a-d}+x^{a-c}+x^{a-b}+1$.

Наиболее просто программно реализовать примитивные трехчленыб так как для генерации нового бита нужно выполнить XOR только двух битов сдвигового регистра (нулевой член не учитывается, т.е. $x^0=1$ , см. пример выше). Действительно, все многочлены обратной связи приведены в таблице, являются разреженными, т.е., у них немного коэффициентов. Разреженность всегда представляет собой источник слабости, которой иногда достаточно для вскрытия алгоритмо. Для криптографических алгоритмов гораздо лучше использовать лотные примитивные многочлены, у которых много коэффициентов. Применяя плотные многочленыб особенно в качестве части ключа, можно использовать значительно более короткие РгСсЛОС.

Генерировать плотные примитивные многочлены по модулю 2 нелегко. В общем случае для генерации примитивных многочленов степени k нужно знать разложение на множители числа (2^k-1).

стр 128¶

Сами по себе РгСсЛОС является хорошими генераторами псевдослучайных последовательностей, но они обладают некоторыми нежелательными неслучайными (детерминированными) свойствами. Последовательные биты линейны, что делает их бесполезными для шифрования. Для РгСсЛОС длины n внутреннее состояние представляет собой предыдущие nвыходных битов генератора. Даже если схема обратной связи хранится в секрете, она может быть определена по 2n выходам битам генератора с помощью высокоэффективного алгоритма Berlekamp - Massey.

Кроме того, большие случайные числа, генерируемые с использованием идущих подряд битов этой последовательностиб сильно коррелированны и для некоторых типов приложений вовсе не являются случайными. Несмотря на это, РгСсЛОС часто используется в качестве составных частей систем и алгоритмов шифрования. О потоковых шифрах на базе РгСсЛОС. Основной подход при проектировании генератора потока ключей на базе РгСсЛОС. Основной подход при проектировании генератора потока ключей на базе РгСсЛОС прост. Сначала берется один или несколько РгСсЛОС обычно с разными длинами и различными многочленами обратной связи. Если длины взаимнопросты, а все многочлены обратной связи примитивны, то у образованного генератора будет максимальная длина.

Ключ является начальным состоянием регистров РгСсЛОС. Каждый раз для получения нового бита, достаточно сдвинуть на бит регистры РгСсЛОС (это инногда называют тактированием (clocking)). Бит выхода представляет собой функцию, желательно нелинейную, некоторых битов регистров РгСсЛОС. Эта функция называется комбинирующей функцией, а генератором в целом - комбинационным генератором. Если бит выхода является функццией единственного РгСсЛОС, то генератор называется фильтрующим генератором. Большая часть теории подобного рода устройств разработана Селмером (Selmer) и Нилом Цирлером (Neal Zierler). Можно ввести ряд усложнений. В некоторых генераторах для различных РгСсЛОС используются различная тактовая частота, иногда частота одного генератора зависит от выхода другого. Все это электронные версии идей шифровальных машин, появвившихся до Второй мировой войны, которые называются генераторами с управлением тактовой частотой (clock-controlled generators).

Управление тактовой частотой может быть с прямой связью, когда выход одного РгСслос управляет тактовой частотой другого РгСсЛОС, или с обратной связью, когда выход одного РгСсЛОС управляет его собственной тактовой частотой. Хотя все эти генераторы чувствительны, по крайней мере теоретически, к вскрытиям вложением и вероятной корреляцией, многие из них безопастны до сих пор.

стр 129¶

Ян Касселле (Ian Cassells), ранее возглавлявший кафедру чистой математики в Кембридже и работавший криптоаналитиком в Блетчли Парк (Bletchly Park), сказал, что "криптография - это смесь математики и путаницы, и без путаницы матератика может быть использована против Вас". Он имел в виду, что в потоковых шифрах для обеспечения максимальной длины и других свойств необходимы определенные математические структуры, такие как РгСсЛОС, но, чтобы помешать кому-либо получить содержание регистра и вскрыть алгоритм, необходимо внести некоторый сложный нелинейный беспорядок. Этот совет справедлив и для блочных алгоритмов.

Большинство реальных потоковых шифров основаны на РгСсЛОС. Даже в первые дни электроники построить их было не сложно. Сдвиговый регистр не представляет собой ничего большего, чем массив битов, а последовательность обратной связи - набор вентелей XOR. Даже при использовании современных интегральных схем потоковый шифр на базе РгСсЛОС обеспечивает немалую безопастность с помощью нескольких логических вентелей. Проблема РгСсЛОС состоит в том, что их программная реализация очень неэффективна. Вам приходится избегать разреженных многочленов обратной связи - они облегчают корреляционные вскрытия - а плотные многочлены обратной связи неэффективны.

Эта отрасль криптографии быстро развивается и находится под зорким надзором государственным контролем со стороны NSA. Большинство разработок засекречены - множество используемых сегодня военных систем шифрования основаны на РгСсЛОС. Действительно, у большинства компьютеров Cray (Cray 1, Cray X-MP, Cray Y-MP) усть весьма любопытная инструкция, обычно называемая как "Счетчик совокупности" (population count). Она подсчитывает количество единиц в регистре и может быть использована как для эффективного вычисления расстояния Хэмминга между двумя двоичными словами так и для реализации векторизированной версии РгСсЛОС. Эта инструкция считается канонической инструкцией NSA, ОБЯЗАТЕЛЬНО ФИГУРИРУЮЩЕЙ ПОСТИ ВО ВСЕХ КОНТРАКТАХ, касающихся компьютеров.

С другой стороны, было взломано удивительно большое число казавшихся сложными генераторов на базе сдвигов регистров. О линейной сложности генерируемой последовательности псевдослучайных чисел РгСсЛОС. Анализировать потоковые шифру часто проще, чем блочные. Например, важным параметром, используемым для анализа генераторов на базе РгСсЛОС,является линейная сложность (linear complexity), или линейной интервал. Она определяется как длина n самого короткого РгСсЛОС, который может иммитировать выход генератора.

стр 130¶

Любая последовательность, сгенерированная конечным автоматом над конечным полем имеет конечную линейную сложность. Линейная сложность важна, потому что с помощью простого алгоритма, называемого алгоритма Berlekamp-Massey, можно определить этот РгСсЛОС, проверив только 2n битов потока ключей. Воссоздавая нужный РгСсЛОС, вы взламываете потоковый шифр. Эту идею можно расширить с полей на кольца и на случай, когда выходная последовательность рассматривается как числа в поле нечетной характеристики. Дальнейшее расширение приводит к вводу понятия профиля линейной сложности, который определяет линейную сложность последовательности по мере ее удлинения. Существует также понятия сферической или квадратичной сложности. В любом случае следует понимать, что высокая линейная сложность не обязательно гарантирует безопастность генератора, но низкая линейная сложность указывает на недостаточную безопастность генератора.

О корреляцинной независимости генерируемой последовательностью псевдослучайных чисел РгСсЛОС. Криптографы пытаются получить высокую линейную сложность, нелинейно объединяя результаты некоторых выходных последовательностей. При этом опасность состоит в том, что одна или несколько внутренних выходных последоваетльностей - часто просто выходы отдельных РгСсЛОС - могут быть связаны общим ключевым потоком и вскрыты при помощи линейной алгебры. Часто такое вскрытие называется корреляционным вскрытием, или вскрытием разделяй и влавствуй. Томас Сигенталер (Thomas Siegenthaler) показал, что можно точно определить корреляционную независимость и что существует компромисс между корреляционной независимостью и линейной сложностью.

Основной идеей корреляционного вскрытия является обнаружение некоторой корреляции между выходом генератора и входом одной из его составных частей. Тогда, наблюдая выходную последовательность, можно получить информацию об этом промежуточном выходе. Используя эту информацию и другие корреляциии, можно собирать данные о других промежуточных выходах до тех пор, пока генератор не будет взломан. Против многих генераторов потоков ключей на базе РгСсЛОС успешно использовались корреляционные вскрытия и их вариации, такие как быстрые корреляционные вскрытия, предлагающие компромисс между вычислительной сложностью и эффективностью. О других способах вскрытия генерируемой последовательвности псевдослучайных чисел РгСсЛОС. Существуют и другие способы вскрытия генераторов потоков ключей. Тест на линейную корректность (linear consistency) - это попытка найти некоторое подмножество ключа шифрования с помощью матричной техники.

стр 131¶

Существует и вскрытие корректности "встречей посередине" (meet-in-the-middle consistency attack). Алгоритм линейного синдрома (linear syndrome algorithm) основан на возможности записать фрагмент выходногй последовательности в виде линейного уравнения. Существует вскрытие лучшим аффинным приближением (best afflne approximation attack) и вскрытие выведенным предложением (derived sequence attack). К потоковым шинам можно применить также методы дифференциального и линейного криптоанализа.

На рисунке 3.12 приведена обобщенная схема алгорима РгСсЛОС, рассматриваемого в лабораторной работе.

image.png

Рис. 3.12. Обобщенная схема алгоритма РгСсЛОС

стр 132¶

Описание программного интерфейса. Ниже на рис.3.13. представлено главное окно программы.

image.png

Рис.3.13.Главное окно программы.

В меню есть следующие функции: Файл -> Сохранить отчет

Эта функция осуществляет создание файла отчета, куда записывается инициальное состояние РгСсЛОС, отводная последовательность, период полученной псевдослучайной последовательности бит, сама последовательность и таблица состояний. Если файл успешно был сохранен, то выдается сообщение об успешном сохранении (рис.3.14).Рекомендуется расширение файла отчета *.txt .

Уведомление о сохранении
Файл отчета успешно сохранен
Ок
Рис.3.14. Уведомление о сохранении файла

Эта функция обеспечивает закрытие приложения: Файл -> Выход; Также есть возможность Задать отводную последовательность. Эта функция формирует отводную последовательность, считывая значения из клеток, которые пользовватель отметил галочкой на экранной форме. После чего она уведомляет пользователя о создании отводной последовательности (рис. 3.15). Отводная последовательность определяет, от каких тригиров регистра сдвига будут идти обратные связи XOR для формирования бита смещения. По умолчанию обратная связь от первого триггера стоит всегда, при отсутствии других связей будет осуществляться и сдвиг влево с перестановкой младшего бита на позицию старшего.

стр 133¶

Уведомление. Отводная последовательность установлена. Ок
Рис. 3.15. Уведомление об установке отводной последовательности

■ Установить инициальное значение

Эта функция считывает введенное пользователем инициальное значение регистра из окна Edit и осуществляет проверку введенного значения согласно заданным условиям: введенная строка непустая (рис. 3.16), введенная строка имеет длину равную восьми (8 бит = 1 байт, рис. 3.17), введенная строка содержит только нули и/или единицы (рис. 3.18), введенная строка ненулевая (рис. 3.19). В противном случае выдаются сообщения об ошибке, пользователь должен их исправить и снова нажать на кнопку. В случае успешной проверки инициальное значение будет записано в таблицу состояний в строке «Инициальное» и выдано уведомление (рис. 3.20).

Сообщение об ошибке
Начальное состояние не установлено (пустая строка). Ок.
Рис. 3.16. Сообщение о том, что начальное состояние не установлено
Сообщение об ошибке. Начальное состояние должно содержать 8 битов (1 байт) ок.
Рис. 3.17. Сообщение о том, что длина начального состояния недопустима

стр 134¶

Сообщение об ошибке. Начальное состояние должно быть двоичным числом. Ок.

Рис. 3.18. Сообщение о томб что систела счисления для указания начального состояния выбрана неверно.
¶

Сообщение об ошибке. Начальное состояние должно содержать хотя бы одну единицу. Ок.

Рис. 3.19. Сообщение о том, что строка начального состояния не содержит единиц
¶

Уведомление. Инициальное состояние успешно установлено.Ок.
Рис. 3.20. Сообщение об успешном установлении инициального состояния

■ Произвести сдвиг регистра

Эта функция эмулирует работу регистра сдвига. Последовательно производя 256 сдвигов, каждый сдвиг формирует выходной бит псевдослучайной последовательности и новое состояние регистра. Как только находится состояние регистра равное инициальному, вычисляется период и выводит в поле Memo полученную псевдослучайную последовательность.

■ Помощь->0 программе

Эта функция выводит на экран краткое описание программы и инструкцию (рис. 3.21).

стр 135¶

О программе.

Описание программы. Данная программа имитирует работу генератора псевдослучайных чисел на РгСсЛОС. Инструкция. 1) Введите начальное значение регистра. 2) Нажмите в меню пункт "Задать начальное значение". 3) Отметьте галочками обратные связи в поле "Отводная последовательность". 4) Нажмите пункт меню "Задать отводную последовательность". 5) Нажмите пункт меню "Произвести сдвиг регистра" для того чтобы полусить псевдослучайную последовательность. 6) Для сохранения результатов нажмите пункт меню "Файл->Сохранить отчет". 7) Изучить результат и попробовать изменить входные данные (п.1-п.5). 8) Для выхода из программы нажмите пункт меню "Файл->Выход". 0) Для получения справки нажмите пункты меню "Помощь->О программе", "Помощь->Об авторе". Ок

Рис.3.21. О программе

■ Помощь->Об авторе

Эта функция выводит на экран информацию об авторе программы (рис. 3.22).

Об авторе. Студент РГСУ КЗОИД-З. Ларионов И.П. Москва 2011. Ок.
Рис.3.22. Информация об авторе.

стр 136¶

Задание

  • 1.Запустите программу 8bit-LFSR.exe. Ознакомьтесь со справкой по программе для выполнения работы (см. рис. 3.21).
  • 2.Введите в поле "Инициальное значение" любое восьмеричное двойное число.
  • 3.Установите отводную последовательность (по умолчанию обязательно один тригер должен входить в отводную последовательность и должна присутствовать хотябы одна обратная связь иначе регистр будет неисправен).
  • 4.Нажмите пункт меню "Произвести сдвиг регистра".

5 В отчете по лабораторной работе отразите результаты, полученные в п. 4 (Файл — Сохранить отчет):

  • введенное в п. 2 инициальное значение;
  • многочлен, характеризующий отводную последовательность;
  • период полученной псевдослучайной последовательности;
  • полученную псевдослучайную последовательность.

Ответьте на вопрос: является ли полученная в п. 5 последовательность максимальной? Почему?

  1. Выполните п. 3—5 с теми же параметрами, но в отводной последовательности укажите только один триггер.

Ответьте на вопрос: какое значение поступает на вход восьмого триггера при каждом его сдвиге и как оно вычисляется в случае если присутствует одна обратная связь? Если присутствует две или более (до восьми) обратных связей?

  1. Выполните п. 3—5 с теми же параметрами, но в качестве инициальной последовательности укажите «11111111».

Ответьте на вопрос: влияет ли инициальное значение на период псевдослучайной последовательности? Влияет ли инициальное значение на псевдослучайную последовательность?

  • Измените отводную последовательность (должно быть минимум две связи), а инициальное значение оставьте тем же. Произведите сдвиг регистра. Что изменилось по сравнению с предыдущим пунктом?
  • Измените отводную последовательность, установив только одну обратную связь Т1. Произведите сдвиг регистра. Что изменилось по сравнению с предыдущим пунктом? Почему период последовательности отличается от аналогичных в предыдущих пунктах (п. 6-7)?
  1. Выполните п. 3—5 с теми же параметрами, но в качестве инициальной последовательности укажите «00000000». Ответьте на вопрос:почему это значение недопустимо при работе РгСсЛОС?

стр 137¶

9.Выполните п.3-5, по в отводной последовательности отметьте галочками 1,5,6 и 7 триггеры или 1,4,6,8 триггеры.

  • Измените несколько раз инициальное значение и произведите сдвиг регистра.

Ответьте на вопросы: Каков период псевдослучайной последослучайной последовательности? Почему он принимает это значение? Какой многочлен по модулю два задает такую последовательность? Является ли он приводимым? Что меняется при изменении инициального значения?

10.Предоставьте электронный отчет преподователю. Отчет должен содержать ответы содержит ответы на вопросы п. 5-10, сведения для п. 5-10, описанные в п. 5, 1, и скриншот главной формы и формы "Справка - О программе" (п. 1).

11.Включите в о лабораторной работе ответы на воросы, выбранные в соответствии с номером варианта из табл. 3.5.

Таблица 3.5

  • Номер варианта - Контрольные вопросы
  • 1,5,7,3,9,18,28 - Что такое Что такое М-последовательность? Каковы ее свойства?Какая отводная последовательность позволяет ее получить? Опишите процесс работы четырехбитового РгСсЛОС: откуда берется выходной бит и как формируется псевдослучайная последовательность, как происходит сдвиг регистра, как меняется его состояние, как образуется бит функции обратной связи (приведите таблицу истинности для операции XOR от 1,2,3,4 переменных)
  • 2,4,6,8,20,22,24,26,30 - Что определяет свойствопериодичности РгСсЛОС? Отчего зависит период РгСсЛОС? Какие многочлены являются неприводимыми по модулю 2? Где и для чего их можно применять на практике?
  • 11,13,15,10,17,19,27 - Что входит в понятие "Линейная сложность бинарной последовательности"? Как ее можно использовать для оценки псевдослучайно бинарной последовательности? Что определяет свойство периодичности РгСсЛОС? Отчего зависит период РгСсЛОС?
  • 12,14,16,21,23,29 - Что такое отводная последовательность? Для чегоона нужна в РгСсЛОС и на какие его параметры влияет? Что такое инициальное состояние РгСсЛОС? Какие есть ограничения на значение инициального состояния? Почему? Что такое ГСПЧ?На чем они могут быть основаны?Какие у них преимущества и недостатки?

стр 138¶

Список литературы.
1.Бабаш А.В., Шанкин Г.П. Криптография . под. ред. В.П. Шестюка, Э.А. Применко. М. : СОЛОН-Р, 2002.
2.Башлы П.Н., Бабаш А.В., Баранова Е.К. Информационная безопастность: учеб. - практ. пособие. М.: Изд. центр ЕАОИ, 2010.
3.Шнайер Б. Прикладнная криптография. 2-е изд. Протоколы,Алгоритмы и исходные тексты на языке С.М.: Триумф, 2002.

стр 139¶

Часть 4. Теоретические сведения.¶

Задача защиты информации от несанкцианированного доступа решались самым разнообразными способами на различных этапах истории. Уже в древнем мире выделилось два основных направления решения этой задачи, существующие и по сей день: криптография и стеганография. Цель криптографии, как уже указывалось, является скрытие содержимого сообщений за счет их шифрования. В отличае от этого стеганография скрывает сам факт существования тайного сообщения.

Слово "стеганография" в переводе с греческого буквально означает "тайнопись" (stegonos - секрет, тайна; graphy - запись). Тайнопись осуществляется самым различными способами. Общей чертой этих чпособов является то, что скрываемое сообщение встраивается в некоторый безобидный, не привлекающий внимания объект. Затем этот объект открыто передается адресату, не вызывая какого-либо подозрения со стороны.

В различные времена и эпохи люди применяли самые разнообразные стенографические методы для защиты своих секретов. Местом зарождения стенографиии многие называют Египед, хотя первыми "стеганографическими сообщениями" можно назвать и наскальные рисунки древних людей.

Первое упоминание о стеганографических методах в литературе приписывается геродоту, описавшему случай передачи сообщения Демартом, который хотел послать в Спарту сообщение об угрозе нападения Ксерксов. Тогда он соскоблил воск с дощечеки, написал послание непоследственно на древе, затем вновь покрыл ее воском. В результате доска выглядела неиспользованной и без проблем прошла досмотр центурионов.

Еще один, весьма неожиданный способ сокрытия информации или условных знаков - татуировка на голове бритого посланца. Для передачи тайного сообщения голову раба обривали, наносили на кожу татуировку, и когда волосы отрастали и сообщение становилось невидимым, его отправляли с посланием. Для прочтения требовалось побрить голову гонца. В Китае письма писали на полосах шелка. поэтому для сокрытия сообщений половкой с текстом письма сворачивались в шарик, покрывались воском и затем глотались посылаемым.

стр 140


Темное средневековье породило не только инквизицию: усиление слежки привело к развитию криптографии, так и стеганографии. В XV веке монах Тритемиус (1462-1516), занимавшийся криптографией и стеганографией, описал множество различных методов скрытой передачи сообщений. Позднее, в 1499 г., эти записи были объединены в книгу Steganographia.

К стеганографии также относится написание текстов невидимыми (симпатическими) чернилами, проявляющимися при нагревании. Яркий пример применения таких чернил — история с В.И.Лениным, который в тюрьме писал статьи в «Искру» молоком между строк книги.

Особое место в истории стеганографии занимают фотографические микроточки, которые сводили с ума спецслужбы США во время Второй мировой войны. Однако микроточки появились намного раньше, сразу же после изобретения Луи Жак Манде Дагером фотографического процесса, и впервые в военном деле были использованы во времена франко-прусской войны в 1870 г.

Распространение стеганографии во время Второй мировой войны итотальная шпиономания вызвали появление многих цензурных ограничений. В США были запрещены к международной почтовой пересылке описания шахматных партий, инструкции по вязанию и шитью, вырезки из газет, детские рисунки. Запрещалось посылать телеграммы с указанием доставить определенный сорт цветов к определенной дате, а впоследствии американским и английским правительствами были запрещены вообще все международные телеграммы, касающиеся доставки и заказа цветов.

В настоящее время в связи с бурным развитием вычислительной техники и новых каналов передачи информации появились и новые стеганографические методы, в основе которых лежат особенности представления информации в компьютерных файлах и вычислительных сетях. Это дает возможность говорить о становлении нового направления — цифровой или компьютерной стеганографии.

Как и любой новый раздел науки, компьютерная стеганография, несмотря на большое количество открытых публикаций и ежегодные конференции, долгое время не имела единой терминологии. Только на конференции Information Hiding: First Information Workshop.

стр 141


в 1996 г. было предложено использовать единую стеганографическую терминологию. Стеганографическая система или стегосистема — совокупность средств и методов, которые используются для формирования скрытого канала передачи информации. При построении стегосистемы должны учитываться следующие положения:

■ противник имеет полное представление о стеганографической системе и деталях ее реализации, единственной информацией, которая остается неизвестной потенциальному противнику, является ключ, с помощью которого только его держатель может установить факт присутствия и содержание скрытого сообщения;

■ если противник каким-то образом узнает о факте существования скрытого сообщения, это не должно позволить ему извлекать подобные сообщения из других объектов до тех пор, пока ключ хранится втайне;

■ потенциальный противник должен быть лишен каких-либо технических и иных преимуществ в распознавании или раскрытии содержания тайных сообщений.

В качестве встраиваемых данных может использоваться любая информация: текст, звук, графика и пр. Контейнер — любая информация, предназначенная для сокрытия тайных сообщений. Под пустым контейнером понимается контейнер без встроенного сообщения; заполненный контейнер или стегоконтей-нер содержит встроенную информацию.

Встроенное (скрытое) сообщение — это сообщение, встраиваемое в контейнер. Стеганографический канал, или стегоканал — канал передачи стего. Стегоключ, или ключ — секретный ключ, необходимый для сокрытия информации. В зависимости от количества уровней зашиты (например, встраивание предварительно зашифрованного сообщения) в стегосистеме может быть один или несколько стегоключей.

По типу ключа стсгосистемы аналогично криптосистемам можно подразделить на два типа: системы с секретным и с открытым ключом В стегосистеме с секретным ключом используется один ключ, который должен быть определен либо до начала обмена секретными сообщениями, либо передан по защищенному каналу.

В стегосистеме с открытым ключом для встраивания и извлечения сообщения используются разные ключи, которые различаются таким образом, что с помощью вычислений невозможно вывести секретный.

стр 142


ключ из открытого. Поэтому открытый ключ может передаваться свободно по незащищенному каналу связи. Такая схема хорошо работает и при взаимном недоверии отправителя и получателя.

Любая стегосистсма должна отвечать следующим требованиям:

  • свойства контейнера должны быть таковы, чтобы изменение невозможно было выявить при визуальном контроле; это требование определяет качество сокрытия внедряемого сообщения: для обеспечения беспрепятственного прохождения стегосообшения по каналу связи оно никоим образом не должно привлечь внимание атакующего;
  • стегосообшение должно быть устойчиво к искажениям, в том числе и злонамеренным; в процессе передачи изображение (звук или другой контейнер) может претерпевать различные трансформации: масштабироваться, преобразовываться в другой формат, кроме того, оно может быть сжато, в том числе и с использованием алгоритмов сжатия с потерей данных;
  • для сохранения целостности встраиваемого сообщения необходимо использование, например, кодов с обнаружением и исправлением ошибок;
  • для повышения надежности встраиваемое сообщение должно быть продублировано.

В настоящее время можно выделить три тесно связанных между собой и имеющих одни корни направления стеганографии: сокрытие данных, цифровые водяные знаки и заголовки.

Сокрытие внедряемых данных — это основное направление компьютерной стеганографии. На его основе базируются все остальные разделы этой развивающейся науки. Если говорить о скрытии информации для ее секретной передачи, то в данном случае встраиваемое сообщение обычно имеет большой размер и размер контейнера в несколько раз должен превышать объем встраиваемых данных.

Цифровые водяные знаки {ЦВЗ) используются для защиты авторских или имущественных прав на цифровые изображения, фотографии или Другие оцифрованные произведения искусства. Основными требованиями, которые предъявляются к таким встроенным данным, являются надежность и устойчивость к искажениям. ЦВЗ имеют небольшой объем, однако с учетом указанных выше требований для их встраиваем используются более сложные методы, чем для встраивания просто сообщений или заголовков.

стр 143


Заголовки используется в основном для маркирования изображений в больших электронных хранилищах (библиотеках) цифровых изображений, аудио и видео файлов. Внедряемые заголовки имеют небольшой объем, а предъявляемые к ним требования минимальны: заголовки должны вносить незначительные искажения и быть устойчивы к основным геометрическим преобразованиям.

Среди основных причин наблюдающегося всплеска интереса к стеганографии можно выделить принятые в ряде стран ограничения на использование сильной криптографии, а также проблему защиты авторских прав на художественные произведения в цифровых глобальных сетях. Поэтому в ближайшее время можно ожидать совершенствования существующих и разработки новых методов и алгоритмов сокрытия передаваемой информации.

стр 144


ЛАБОРАТОРНАЯ РАБОТА № 13¶

ЗАЩИТА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МЕТОДАМИ СТЕГАНОГРАФИИ¶

Цель работы: ознакомление с методами защиты исполняемых файлов. Изучение возможностей стеганографической защиты .exe файлов путем встраивания цифровых водяных знаков в пустое место, в конце секций файла.

Примечание. Для выполнения лабораторных работ на компьютере необходимо устанавливать программу Filigrana.exe.

Описание лабораторной работы. Защита программного обеспечения (ПО) - комплекс мер, направленных на защиту ПО от несанкционированного приобретения, использования, распространения, модифицирования, изучения и воссоздания аналогов.

Разработка наиболее эффективного метода защиты для того или иного программного продукта в настоящее время становится одной из важных задач большинства программистов, которые снимаются разработкой специализированного, платного программного обе спечения, так как это позволяет им продавать свой интеллектуальный труд и исключить возможности его нелегального исполыова ния среди потребителей, говоря иными словами, никто не сможет использовать оригинальную, лицензионную копию определен ной программы, предварительно не купив, не заплатив денег ее разработчику.

Затраты производителей на создание эффективного методы защиты их программных продуктов окупаются и компенсируют потенциальный ущерб, наносимый нелегальным копированием и использованием программ.

Существует два основных способа защиты интеллектуальной собственности и, следовательно, самых программных продуктов:

  • юридический - данный способ защиты заключается в создании определенных законодательных актов, которые будут охранять интеллектуальную собственность (в нашем случае программные продукты) от нелегального использования;
  • технический - реализуется путем включения в программный продукт какого- либо из существующих методов защиты, который будет запрешать его нелегальное использоваение. По сравнению с юридическим способом защиты он является наиболее распространенным, так как он практичен и сравнительно недорогой в реализации.

стр 145


Юридическая защита. Юридическая защита включает в себя такие методы как патентование, оформление прав на интеллектуальную собственность и т.д. Также предусматривается возможность лиензирования программного продукта, так, например большинство программных продуктов поставляются вместе с лицензией, которая подтверждает право пользователя использовать этот программный продукт, т.е., покупая лицензионную копию программы, пользователь в некой мере производит покупку лицензии на право работы с ее копией.

Техническая защита. Существует множество технических методов защиты программных продуктов. Ниже приведены наиболее интерестные и актуальные из них.

Использование парольной защиты (код активации). Этот вариант на сегодня является самым распространенным. Принцип действия защиты основан на идентификаии и аутентификации пользователя ПО путем запроса у него дополнительных данных, это могут быть название фирмы и (или) имя и фамилия пользователя и его пароля либо только пароля. Эта информация может запрашиваться в различных ситуациях, например при старте программы, по истечении срока бесплатного использования ПО, при вызове процедуры регистрации или в процессе установки на компьютер пользователя. Процедура защиты проста в реализации и поэтому очень часто применяется производителями ПО. Она сводится к проверке правильности вводимого кода и запуске или незапуске ПО в зависимости от результата проверки.

Защита через Интернет. Данный метод защиты схож с пердыдущим, его отличае заключается в том, что проверка кода активации происходит на сервере производителя. Если ваша программа работает с сетью (это может быть менеджер закачки файлов, браузера, FTP-клиент и при.), может применить проверку введенного в программу кода через Интернет, используя базу данных пользователей на сайте программы. Однако проверять нежно какие-либо косвенные данные, чтобы исследователь не мог получить с сайта программы, например, базу данных с серийными номерами. Сложность взлома этой защиты в том, что весьма непросто найти в коде программы место, где идет обращение к Интернет-серверу именно с целью проверки регистрационного кода.

Выполнение программ на стороне сервера. Данный метод защиты основан на технологии клиент-сервер, он позволяет предотвратить отссылку кода программы пользователям, которые будут с ней работать, так ка сама программа хранится и выполняется на сервере, а пользователь, использует клиентчкую часть этой программы, получают результаты ее выполнения (рис. 4.1).

стр 146


image.png

Рис. 4.1. Выполнение программы на стороне сервера.

Клиентскую часть можно расспространять бесплатно, это позволит пользователям платить только за использование серверной части. Недостатком данного метода является то, что он устанавливает зависимость пропускной способности сети и тех данных, с которыми будет работать программа (соответственно работа с мультимедиа данными требует максимальной пропускной способности сети). Поэтому данный метод наиболее эффективен для простых программ (сценариев), потребность в которых очень велика среди пользователей.

Преимущество такого методы заключается в том, что злоумышленнику в данном случае нужно будет для начала скомпрометировать сам сервер, только после чего он сможет получить копию требуемой программы. Данный метод не позволяет защитить программу от нелегального копирования, поэтому после того как ее копия попадает к злоумышленнику, он сможет сделать с ней что захочет.

Установка подлинности кода (tamper-proofing). В данном случае в программу помещается процедура проверки целостности самой программы, что позволяет определить, была ли программа изменена (были ли внесены какие-либо изменения в ее код). Если эта процедура обнаруживает, что в прорамму внесены изменения, она делает программу нефункциональной (рис. 4.2.). Это позволяет защитить программный продукт от модификации со стороны злоумышненника.

Существуют такие пути проверки целостности программы, как

  • проверка идентичности оригинальной и запускаемой программы. Обычно для этого определяется контрольная сумма запушенной программы, которая потом сверяется с записанной в процедуру проверки контрольной суммой оригинальной программы; для осуществления быстрой проверки используют такие алгоритмы как CRC или MD4/5;
  • проверка результатов работы программы, т.е. осуществляется проверка выходных значений функций, которые очень чувствительны, к каким либо возможным изменениям в программном коде;
  • создание запускаемой программы на лету в соответствии с ее оригинальным образом — это позволяет избежать возможности выполнения изменений внесенных в программу, так как они не будут учитываться при ее создании.

стр 147


image.png

Рис. 4.2. Установка подлинности кода

Шифрование программного кода. Используется для того, чтобы предотвратить вмешательство в программу, а также усложнить процесс понимания взломщиком того, как устроена программа, как она работает, как в ней реализован метод зашиты и т.д.

Данный метод зашиты предусматривает шифрование кода программы, после чего она в зашифрованном виде поставляется конечным пользователям (иногда эффективно зашифровывать только наиболее важные, критические, участки кода, а не весь код программы). Когда пользователь запускает такую программу, вначале будет запушена процедура расшифровки программы, которой потребуется ключ, с помощью которого и будет расшифрована запускаемая программа (рис. 4.3).

стр 148


image.png

Рис. 4.3 Шифрование программного кода

Способ шифрования программ имеет недостатки, одним из которых является то, что у взломщика есть возможность после приобретения лицензионной копии программы произвести извлечение расшифрованных частей программы в процессе ее работы из памяти. Поэтому сразу после использования расшифрованного кода его необходимо выгружать из памяти.

Осфускация программного кода. Обфускация (obfuscation - запутывание), это один из методов защиты программного кода, который позволяет усложнить процесс реверсивной инженерии кода защищаемого программного продукта.

Суть процесса обфускации заключается в том, чтобы запутать программный код и устранить большинство логических связей в нем, т.е. трансформировать его так, чтобы он бал очень труден для изучения и модификации посторонними лицами (будь то взломщики или программисты которые собирутся узнать уникальный алгоритм работы защищаемой программы).

Использование только обфускации для обеспечения полной эфективной защиты программны продуктов недостаточно, так как она не предоставляет возможности предотвращения нелегального использования программного продукта. Поэтому обфускацию обычно используют вместе с одним из существующих методов защиты (например, шифроваание программного кода), это позволяет значительно повысить уровень защиты программного обеспечения в целом (рис. 4.4.).

стр 149


image.png

Рис. 4.4. Обфускация программного кода

Такой как код, получаемый после осуществления обфускации над одной и той же программой, разный, то процесс обфускации можно использовать для бастрой локализации нарушений авторских прав (т.е. тех покупателей, которые будут заниматься нелегальным) распространением купленных копий программ). Для этого определяют контрольную сумму каждой копии программы, прошедшей обфускацию, и записывают ее вместе с информаией о покупателе в соответствующую базу данных. После этого для определения нарушителя достаточно будет, определив контрольную сумму нелегальной копии программы, сопоставить ее с информаией, хранящейся в базе данных.

Программы-протекторы. Протекторами называются программы, предназначенные для защиты программ от взлома. Данный способ защиты программы стал весьма популярен в последнее время. После того как получен работающий исполняемый файл, этот файл обрабатывается с помощью программы протектора и создается новый исполняемый файл, в котором реализованы различные средства защиты (защита программ представляет собой обычную упаковку всего файла, при этом "защиается" сам распаковщик, который в итоге распаковывает файл). Протекторы пишутся профессионалами в области защиты и обеспечивают неплохой уровень противодействия взлому, с которым большенству исследователей программ не справиться.

стр 150


Недостатком данного метода является то, что протекторы становятся очень популятными и , соответственно, активно изучаются взломщиками, которые пишут программы- антипротекторы (распаковки защиты). Подобные средства быстро и автоматически снимают защиту.

Использование электронных ключей. На сегодня это наиболее надежный и удобный способ защиты тиражируемого ПО средней и высокой ценовой категории. Он обладает высокой скоростью к взлому и не ограницивает использование легальной копии программы.

Электронный ключ представляет собой небольшое устройство, которое подсоединяется к одному из портов компьютера (СОМ, LPT,USB). Принцип его действия состоит в следующем: ключ присоединяется к определенному интерфейсу компьютера, далее защищенная програма через специальный драйвер отправляет ему запрос, который обрабатывается в соответствии с заданным алгоритмом и возвращается обратно. Если ответ ключа правильный, то программа продолжает свою работу. В противном случае она может выполнить любые действия, заданные разработчиком ( например, переключаться в демонстрационный режим, блокируя доступ к определенным функцциям). Вот некоторые характерные запросы:

  • проверка наличия подключения ключа;
  • считывание с ключа необходиме программе данные в качестве параметра загрузки;
  • запрос на расшифрование данных или исполняемого кода, необходимых для работы программы (предварительно разработчик защиты шифрует часть кода программы, и при этом непосредственное выполнение такого зашифрованного кода приводит к ошибке);
  • проверка целостности исполняемого кода путем сравнения его текущей контрольной суммы с оригинальной контрольной суммой, считываемой с ключа;
  • запрос к встроенным в ключ часам реального времени (при их наличии) и т.д.

Специфика PE-файлов. Типичный исполняемый PE-файл имеет следующую структуру (рис. 4.5.).

стр 151


image.png

Рис. 4.5. Обобщенная структура PE-ФАЙЛА.

MZ - заголовок содержит программу для ОС DOS - эта программа называется stub и нужна для всовместимости со старыми ОС. Если мы запускае PE-файл под ОС DOS или ОС /2, она вывдит на экран консоли текстовую строку, которая информирует пользователя, что данная программа не совместима с данной версией ОС: This program cannot be run in DOS mode. После этой DOS - программы идет структура, которая называется IMAGE_NT_HEADERS (PE-заголовок). Она описывается следующим образом:

In [ ]:
typedef struct _IMAGE_NT_HEADERS
{
    DWORD Signature;
    IMAGE_FILE_HEADER FileHeader;
    IMAGE_OPTIONAL_HEADER32 OptionalHeader;
}

Первый элемент IMAGE_NT_HEADERS - сигнатура PE - файла, которая равна 0x00004550 или в ASCII-символах, "PE00". Кстати, именно из-за этой сигнатуры исполняемый файл Windows и называют PE-файлом. Далее идет структура, которая называется файловым заголовком и определена как IMAGE_FILE_HEADER. Файловый заголовок содержит наиболее общие свойства для данного PE-файла - тип процессора, для которого скомпилирован исполняемый файл; количество заголовков секций; размер опцианального заголовка, а также некоторую другую информацию.

После файлового заголовка идет опциональный заголовок - IMAGE_OPTIONAL_HEADER32. Он содержит специфические параметры PE-файла - размер исполняемого кода; относительный виртуальный адрес (RVA - Relative Virtual Address) точки входа в программу; базовый адрес, начиная с которого в памяти будет отображен образ исполняемого файла и многое другое.

стр 152


Также здесь хранится немаловажная информация о границах выравнивания секций в памяти - SectionAlignment и границах выравнивания секций в файле на диске - FileAlignment. Наличие двух видов выравнивания обусловлено спецификой работы компьютера - чтение информации с жесткого диска производится секторами, а из памяти - страницами. То есть если файл занимает 1 байт, с диска будет все равно прочитано 512 (один сектор). Поэтому размер файла на диске дополняется нулями (выравнивается) до определенного значения (обычно 512). Тоже самое в памяти, только там выравнивание обычно происходит на одну страницу (1000h). Проще говоря, выравнивание - это округление до определенной константы, нужно для оптимизации работы компьютера.

Прежде чем перейти к дальнейшему описанию, нужно прояснить одну важную вещь - PE-файл состоит из секций. Одна секция может содержать код, данные, таблицу импорта или что-либо еще. Главная сложность заключается в том, что секция на диске не обязательно соответствует секции в памяти. Это происходти по нескольким причинам: отчасти из-за выравнивания, о котором было сказано выше, а ещё потому, что существует такая вещь, как неинициализированные данные. К примеру, если в листинге написать: buffer rb 1000h, то размер файла на диске не увеличится ни на байт. Другое дело в памяти,здесь он будет больше ровно на 1000h. Информация о секциях хранения в специальной таблице (Object Table). Она идет сразу же после PE-заголовка и состоит из набора заголовков секций. Каждый заголовок описывает одну секцию файла: ее размер, размещение на диске и в памяти, параметры и т.д.. Все заголовки секции имеют длину 40 байт и располагаются без выравнивания. За всемит заголовками в файле следует тела секций. В Microsoft исторически сложились такие устойчивые названия секций как ".text", ".bss", ".data", ".rdata", ".edata", ".idata", ".rsrc", ".debug", " и некоторые другие - не обязательно, чтобы секции имели такие названия. Например, компиляторы от фирмы Inprise (бывшая Borland) присваивают секциям имена вида CODE, DATA и т.п. Кроме тогоб программист может создавать дополнительные секции со своими названиями. Наличие точки в начале секции также необязательно. Секции расположены вплотную друг к другу без промежутком, но это совсем не значит, что в самих секциях не бывает пустух мест.

стр 153


Каджая стандартная секция имеет определенное назначение, наприме:

  • в .text расположен код программы;
  • в .bss неинициализированные данные;
  • в .data - инициализированные данные;
  • в .edata - функции, экспортируемые файлом;
  • в .idata - таблицы импортируемых функций;
  • в .rsrc - ресурсы;
  • в сегменте .rdata - данные только для чтения (строки и константы, информация отладочного каталога).

Но это назначение секций не строгое, например .text вполне может быть начинен обычными данными, а также экспортируемыми функциями. Некоторые секции имеют особый формат. В самом конце PE-файл за секциями вполне могут размещаться дополнительные данные, например какая-нибудь отладочная информация, но это носит необязательный характер. Техника внедрения кода в PE-файлы. Существуют следующие способы внедрения кода в PE-файлы:

  • a) размещение кода поверх оригинальной программы (также называемое затиранием);
  • б) размещение кода в свободном месте программы (интеграция);
  • в) дописывание кода в начало, середину или конец файла с сохранением оригинального содержимого;
  • г) размещение кода вне основного тела файла-носителя (например, в динамической библиотеке).

Поскольку, способ a) приводит к необратимой потере работоспособности исходной программы и реально применяется тольуо в вирусах, здесь он не рассматривается. Все остальные алгоритмы внедрения полностью или частично обратимы.

image.png - Заголовок

image.png - Кодовая секция

image.png - Секция данных и служебные секции

image.png - Свободное пространство

image.png - Код

Рис.4.5. Условные графические обозначения, принятые в дальнейшем изложении

Классификация механизмов внедрения. Механизмы внедрения можно классифицировать по-разному: по месту (начало, конец, середина), "геополитике" (затирание исходных данных, внедрение в свободное пространство, переселение исходных данных на новое место обитания), надежности (предельно корректное, вполне корректное и крайне некорректное внедрение), рентабельности (рентабельное или нерентабельное) и т.д. . Следующая классификация основана на характере воздействия на физический и виртуальный образ программы. Все существующие механизмы внедрения можно разделить на четыре категории...

стр 154


  • К категории А относятся механизмы, не вызывающие изменения адресации ни физического, ни виртуального образов. После внедрения в файл ни его длина, ни количество выделенной при загрузке памяти не изменяется и все базовые структыру остаются на своих прежних адресах. Этому условию удовлетворяют: внедрение в пустое место файла (PE-заголовок, хвосты секций, регулярные последовательности), а также внедрение путем сжатия части секции.
  • К категории В относятся механизмы, вызывающие изменения адресации только физического образа. После внедрения в файл его длина увеличивается, однако колличество выделенной при загрузке памяти не изменяется и все базовые структуры проецируются по тем же самым адресам, однако их физические миещения изменяются, что требует полной или частичной перестройки структур, привязывающихся к своим физическим адресам, и если хотябы одна из них останется не скорректированной (или будет скорректирована неправильно), файл-носитель с высокой долей вероятности откажет в работе. Категории В соответствуют: раздвижка заголовка, сброс части оригинального файла в оверлей и создание своеобразного собственногоо оверлея.
  • К категории С относятся механизмы, вызывающие изменения адресации как физического, так и виртуального образов. Длинна файла и выделяемая при загрузке память увеличиваются. Базовые структурымогут либо оставаться на своих местах (т.е. изменяются лишь смещения, отсчитываемые от конца образа\файла), либо перемещаться по страничному имиджу произвольным образом, требуя обязательной коррекции. Этой категории соотвнтствует: расшиение последней секции файла, создание своей собственной секции и расширение серединных секций.
  • К "засекреченной" категории Z относятся механизмы, вообще не затрагивающие файл-носителя и внедряющиеся в его адресное пространство косвенным путем, например модификацией ключа реестра, ответственного за автоматическую загрузку динамических библиотек. Эту технологию в первую очередь используют сетевые черви и шпионы.

стр 155


  • Категрия А: внедрение в пустое место файла. Проще всего внедрять в пустое место файла. На сегодня таких место известно три:
    • 1)PE-заголовок;
    • 2)хвосты части секций;
    • 3)регулярные последовательности.

Рассмотрим их подробнее. Внедрение в PE-заголовок. Типичный PE-заголовок вместе с MS-DOS заголовком занимает примерно 300h байт, а минимальная кратность выравнивания секций составляет 200h байт. Таким оборазом, между концоом заголовка и насалом первой секции практически всегда имеется около 100h байт, которые можно использовать для внедрения скрытого сообщения, размещения здесь либо всю внедряемую информацию целиком, либо ее часть, если размер не позволяет большего (рис. 4.7).

image.png

Рис. 4.7. Внедрение инфорамии в свободное пространство хвоста PE-заголовка.

Перед внедрением в заголовок необходимо убедиться, что хвостовая часть заголовка действительно свободна. Сканирование таких заголовков обычно выявляет длинну цепочки нулей, расположенных в его хвостовой части, которая никем никак не используется. Туда-то и можно записать информацию, то и можно записать информацию, но только с предосторожностями. Необходимо отсчитать по меньшей мере 10h байт от последнего ненулевого символа, оставляя этот участок нетронутым (в конце некоторых структур присутствует до 10h нулей, искажение которых ни к чему хорошего не приведет).

Внедрение в PE-заголовок в большинстве случаем можетно разпознать визуально. Рассмотрим как выглядит в hex-редакторе типичный исполняемый файл notepad.exe (рис. 4.8): как уже было сказано выше, вслед за концом MS-DOS заголовка, обычно содержащим в себе строку This program cannot be run in DOS mode, расположена "PE" сигнатура, за которой следует немного мусора, разбавленного нулями и плавно перетекающего в таблицу секций, содержащую легко узнаваемые имена .text, .rsrc и .data .

стр 156


image.png

Рис. 4.8. Типичные PE-заголовок файла.

Иногда за таблицей секций присутствует таблица DOUND импорта с перечнем имен загружаемых динамических библиотек. Дальше, вплоть до начала первой секции, не должно быть ничего, кроме нулей, использующихся для выравнивания. Если же это не так, то исследуемый файл содержит внедренный код.

На рисунке 4.8 показан типичный PE-заголовок файла, а на рис. 4.9 тот же файл после внедрения информации.

image.png

Рис. 4.9. Заголовок файла после внедрения

стр 157


Внедрениие в хвост секции¶

Операционная система Windows требует, чтобы физические адреса секций были выровнены по меньшей мере на 200h байт, поэтому между секциями практически всегда есть некоторое количество свободного пространства, в которое легко можно внедрить информацию (рис. 4.10).

image.png

Рис. 4.10. Внедрение кода в хвост секции, оставшийся от выравнивания

Перед внедрением необходимо найти секцию с подходящими атрибутами и достаточным свободным пространством в конце или рассредоточить внедряемый код в нескольких секциях. Для этого необходимо просканировать хвостовую часть секции на предмет наличия непрерывной цепочки нулей - если таковая там действительно присутствует, ее можно безбоязненно использовать для внедрения. Распространить внедрение этого типа достаточно трудно, особенно если код полностью помещается в первой кодовой секции файла, которой, как правило является секция .text. Внедрение в секцию данных разоблачает себя наличием характерного кода в ее хвосте. Внедрение осмысленного машинного кода в хвост секции данных представлено на рис. 4.11.

image.png

Рис.4.11. Осмысленный машинный код в хвосте секции данных.

стр 158


Внедрение в регулярную последовательность байт Цепочки нулей необязательно искать в хвостах секций, также как необязательно искать именно нули, для внедрения подходит любая рс гулярная последовательность (например, цепочка FF FF FF.. или даже FF 00 FF 00...). Если внедряемых цепочек больше одной, кол при дстся разбить по всему телу файла. Соответственно стартовые адреса и длины этих цепочек придется где-то хранить для их последующего восстановления.

Регулярные последовательности чаще всего обнаруживаются в ресурсах, а точнее — в bitmap'ax и иконках. Технически внедрить ся сюда ничего не стоит, но пользователь тут же заметит искажение иконки, чего допускать ни в коем случае нельзя (даже если это и не главная иконка приложения, так как проводник показывает остальные по нажатию кнопки «сменить значок» в меню свойств ярлыка). Внедрение кода в регулярные цепочки продемонстрировано на рис. 4.12.

image.png

Рис. 4.12. Внедрение кода в регулярные цепочки

Алгоритм внедрения выглядит так: сканируем файл на предмет поиска регулярных последовательностей и отбираем среди них цепочки наибольшей длины, причем сумма их длин должна несколько превышать размеры кода, так как на каждую цепочку в среднем приходится 11 байт служебных данных: четыре байта на стартовую позицию, один байт - на длину, один байт - на оригинальное содержимое и еще пять байт на машинную команду перехода к другой цепочке.

Разбиваем код на части, добавляя в конец каждой из них команду перехода на начало следующей. Запоминаем начальнфе адреса, длины и исходное содержимое всех цепочек в импровизированном хранилище, сооруженном либо внутри PE-заголовка, либо внутри одной из цепочек. Если этого не сделать, потом будет невозможно извлечь код из файла. После чего записываем код в выбранные цепочки.

Категория А: внедрение путем сжатия части файла.

стр 159


Внедрение в регулярные последовательности фактически является разновидностью более общей техники внедрения в файл путем сжатия его части, в данном случае осуществляемое по алгоритму RLE. Если же использовать более совершенные алгоритмы (например, Хаффмена или LZW), то стратегия выбора поподходящих частей значительно упрощается. Мы можем сжать кодовую секцию, а на освободившееся место записать наш код. Для компрессии можно использовать функционал, реализованный в самой ОС (аудио, видео-кодеки, экспоненты графических форматов, сетевые функции сжатия и т.д.). Естественно, упаковка оригинального содержимого секции (или ее части) не обходится без проблем. Во-первых, следует убедиться, что секция вообще поддается сжатию. Во-вторых, предотвратить сжатие ресурсов, таблиц экспорта (импорта) и другой служебной информации которая может присутствовать в любой подходящей секции файла и кодовой секции в том числе. В третьих , перестроить таблицу перемешаемых элементов (если, конечно, она вообще есть), исключая из нее элементы, принадлежащие сжимаемой секции и поручая настройку перемещаемых адресов непосредственно самому внедряемому коду (рис. 4.13.).

image.png

Рис.4.13. Внедрение кода путем сжатия секции.

Распознать факт внедрения в файл путем сжатия части секции трудно, но все-таки возможно. дизассемблирование сжатой секции обнаруживает некоторое количество бессмысленного мусора, настораживающего опытного исследователя, но зачастую ускользающего от новичка. Также стоит обратить внимание на размеры секций. Если виртуальные размеры большинства секций много больше физических, то файл, по всей видимости, сжат каким-либо упаковщиком.

Категория В: раздвижка заголовка.

Когда пространства, имеющиеся в PE-заголовке (или какой либо другой части файла), оказывается недомтаточно для размещения всего кода целиком, мы можем попробовать растянуть заголовок на величину, выбранную по своему усмотрению. До тех пор пока размер за-

стр 160


заголовка (SizeOfHeaders) не превышает физического смешения первой секции, такая операция осуществлякется элементарно, но вот дальше начинаются проблемы, для решения которых приходится кардинально перестраивать структуру исполняемого файла. Как минимум необходимо увеличить физические адреса начала всех секций на величину, кратную принятой степени выравнивания, прописанной в поле "Физическое выравнивание секций", и физически переместить хвост файла, записав код на освободившееся место. Максимальный размер заголовка равен виртуальному адресу первой секции, так как заголовок не может перекрываться с содержимым страничного имиджа. Учитывая, что минимальный виртуальный адрес составляет 1000h, а типичный размер заголовка - 300h? мы получаем свое распоряжение порядка 3 Кбайт свободного пространства, достаточного для размещения практически любого кода (рис.4.14.).

image.png

Рис.4.14. Исполняемый файл и его проекция в память до и после внедрения кода путем раздвижки заголовка

Данный метод внедрения распознается аналогично обычному методу внедрения в PE-заголовок. Описание программной реализации встраивания ЦВЗ. В программе Filigrana использован алгоритм , основанный на встраивании цифрового водяного знака (ЦВЗ) в свободное место исполняемого файла. Подробно данный алгоритм был рассмотрен в предыдущей главе (Категория А: внедрение в пкстое место , в конце секции файла). В качестве ЦВЗ используется изображение формата ВMP. В общем виде алгоритм встраивания ЦВЗ представлен на рис. 4.15.

стр 161

image.png

Рис. 4.15. Алгоритм встраивания ЦВЗ

Для демонстрации работы программы встраивания ЦВЗ возьмем два исполняемых файла:

  • 1)программу Calc.exe из стандартной поставки Windows, размер программы на диске - 114 Кб (116376 байт);
  • 2)установочный файл SkypeSetup.exe программы Skype, размер файла на диске - 1,88 МБ (19783668 байт).

Встроим ЦВЗ наибольшего допустимого размера для каждого из исполняемых файлов. В нашем случае для первого файла этот размер оказался равным 361 байт, о чем нам и сообщает программа (рис. 4.16).

image.png

Рис. 4.16. Сообщение о допустимом размере встраиваемого ЦВЗ

стр 162


image.png

Рис.4.17. Сщение о допустимом размере встраиваемого ЦВЗ

Для второго файла возможный размер ЦВЗ для встраивания увеличился до 13668 байт (рис. 4.17). При этом в процентном соотношении (размер встраиваемого ЦВЗ к размеру исполняемого файла) первый файл выигрывает у второго примерно 0,3% напротив примерно 0,15%. Но, как видно из выходных данных, наиболее эффективно использование программы для встраивания в файлы большого размера, что логично с точки зрения структуры исполняемого файла, да и выявлять факт встраивания в exe-файл большего размера будет сложнее из-за размеров дизассемблированного кода, при этом рекомендуется использовать ЦВЗ небольшого размера относительно размеров контейнера. После встраивания размеры илняемых файлов не изменились (рис.4.18).

image.png

Рис.4.18. Размеры exe-файлов, содержащих ЦВЗ

стр 163


Задание.¶

Встраивание цифрового водяного знака 1.Запустите программу Filigrana, предварительно установленную на Ваш компьютер.

image.png

  1. Выберите пункт "Открыть exe-файл" из меню "Файл" появившегося окна или нажмите комбинацию клавиш "Ctrl+O". image.png

3.В появившемся диалоговом окне выберите необходимый exe-файл, два раза кликнув на нем левой кнопкой мыши или с помощью кнопки "Открыть". В окне главной формы отобразятся данные о выбранном файле в шестнадцатеричном и ASCII формате.

image.png

стр 164¶

4.Выберете пункт "Открыть изображение" из меню " Файл" Или нажмите комбинацию клавиш "Ctrl+A". image.png

5.В появившемся диалоговом окне выберите изображение в формате .bmp, которое вы хотите использовать в качестве ЦВЗ, два раза кликнув на нем левой кнопкой мыши или с помощью кнопки "Открыть". В окне preview главной формы отобразится выбранное изображение, в hex-окне курсор автоматически переместится на строку, с которой начнется последующее встраивание цифрового фодяного знака

image.png

6.Чтобы встроить выбранное изображение, введите пароль (используйте сочетание букв, цифр и символов) в окне "Встраивание ЦВЗ", вызываемого из пункта "Встроить изображение" меню "ЦВЗ" главной формы или нажатием комбинации клавиш "Alt+I" image.png

стр 165.


7.После ввода пароля нажмите кнопку "Встроить". В случае если выбранное изображение удовлетворяет условиям встраивания (размер ЦВЗ не превышает размер контейнера и exe-файл пригоден для встраивания), оно будет встроено, после чего появится соответствующее сообщение, в hex-окне можно будет просмотреть результаты встраивания. image.png

8.Для сохранения исполняемого файла со встроенным ЦВЗ выберете пункт "Сохранить exe-файл" из меню "Файл" или нажмите комбинацию "Ctrl+S", введите имя сохраняемого файла и нажмите кнопку "Сохранить".

Внимание! Для успешного извлечения ЦВЗ необходимо запомнить свой пароль или сохранить его в месте, недоступном для другихпользователей. Никому не показывайте свой пароль!

Извлечение ифрового водяного знака.¶

1.Откройте exe-файл, содержащий ЦВЗ. Выберите пункт "Извлечь изображение" меню "ЦВЗ" главной формы или нажмите комбинацию клавишь "Alt+E".

image.png

стр 166


2.Для извлечения изображения в окне "Извлечение ЦВЗ" введите пароль, который использовался при встраивании цифрового водяного знака, и нажмите кнопку "Извлечь". image.png

3.Если вы ввели верный пароль, появится соответствующее сообщение, а в окне preview главной формы отобразится изображение, встроенное ранее. image.png

4.Сохраните в отчете экранные формы, демонстрирующие процесс встраивания ЦВЗ в различные исполняемые файлы. Сделайте выводы об эффективности изученного метода защиты.

5.Включите в отчет о лабораторной работе ответы на контрольные вопросы выбранные в соответствии с номером варианта из таблиц 4.1.

  • Номер варианта - Контрольные вопросы
  • 1,5,7,26 - Перечислите способы защиты программных продуктов. Укажите их достоинства и недостатки.
  • 2,4,6 - Какие методы включают юридическая защита программных продуктов? Охарактеризуйте основные из них
  • 11,13 - Перечислите основные международные т отечественные источники защиты прав авторов программ
  • 12, 14,16 - В чем заключается процедура лицензирования программ? Какими нормативными документами регулируется процесс лицензирования программ?
  • 3,9,18,29 - Перечислите технические методы защиты программных продуктов. Кратко охарактеризуйте каждый из них

  • 20,22,24 - Какие методы стеганографии могут использоваться для защиты программных продуктов? Сравните методы стеганографической защиты и технической защиты ПО.

  • 10,17,19 - Какие особенности структуры PE-файлов дат возможности эффективного внедрения цифровых водяных знаков?
  • 21,23,25 - Опишите суть метода внедрения кода в PE-файла за чтет размещения кода в свободном месте программы (интеграция)
  • 8,28,27 - Какой из методов внедрения кода в PE-файлы используется в программе Filigrana? Опишите суть этого метода, его достоинства и недостатки.
  • 12,15,30 - Какие способы обнаружения, извлечения и модификации ЦВЗ вы можете предложить для изученного метода защиты ПО?

стр 167 - стр 168


Лабораторная работа №14¶

Защита электронных документов с использованием цифровых водыных знаков¶

Цель работы: ознакомление с методами зашиты электронных документов с использованием цифровых водяных знаков.

Примечание. Для выполнения лабораторных работ на компьютере необходимо установить программы watermark_1.05 и watermark_2.

Описание лабораторной работы. Цифровые водяные знаки (ЦВЗ) являются одной из наиболее перспективных областей использования компьютерной стеганографии. На электронные документы наносится специальная метка, которая остается невидимой для глаз, но распознается специальными программами. Такое программное обеспечение уже используется в электронных версиях некоторых журналов. Данное направление стеганографии призвано обеспечить защиту интеллектуальной собственности.

Водяные знаки могут быть как видимыми (или печатными), так и скрытыми (или цифровыми). Печатный водяной знак представляет собой некоторую видимую метку на изображении (рис. 4.19) — как правило, это подпись автора и (или) его логотип. Такие водяные знаки показывают, что данное изображение принадлежит конкретному автору или компании. Однако опытный компьютерный график при желании сможет удалить печатный водяной знак или заменить его на другой.

image.png

Рис.4.19. Примеры печатных водяных знаков

стр 169


Цифровой поляной знак — это цифровой код (как правило, он представляет собой идентификационные данные — ID, URL, алрсс электронной почты, логотип и пр.), вставленный в электронный да кумент, чтобы идентифицировать информацию об авторских правах В отличие от печатного водяного знака он невидим. ЦВЗ применяется для того, чтобы обеспечить защиту авторских прав для интеллектуальных ресурсов в цифровом формате. При этом биты информации, представляющие водяной знак, разбросаны внутри файла, поэтому они не могут быть идентифицированы или изменены.

ЦВЗ могут быть трех типов: робастные, хрупкие и полухрупкие. Под робастиостью понимается устойчивость ЦВЗ к различного рода воздействиям на стего.

Хрупкие ЦВЗ разрушаются при незначительной модификации заполненного контейнера. Отличие от средств электронной цифровой подписи заключается в том, что хрупкие ЦВЗ все же допускают некоторую модификацию контента. Это важно для защиты мультимедийной информации, так как законный пользователь может, например, пожелать сжать изображение. Другое отличие заключается в том, что хрупкие ЦВЗ должны отразить не только факт модификации контейнера, но также вид и местоположение этого изменения.

Полухрупкие ЦВЗ устойчивы по отношению к одним воздействиям и неустойчивы по отношению к другим. Вообще говоря, все ЦВЗ могут быть отнесены к этому типу. Однако полухрупкие ЦВЗ специально проектируются так, чтобы быть неустойчивыми по отношению к определенного рода операциям. Например, они могут позволять выполнять сжатие изображения, но запрещать вырезку из него отдельных элементов или вставку в него фрагментов.

К цифровым водяным знакам предъявляются следующие требования:

  • невидимость; когда на изображение ставится видимый логотип держателя прав, он, как правило, распологается в таком месте, где не сможет быть помехой для зрительного восприятия иллюстрации, следовательно и его умышленное удаление не повлечет за собой особых нарушений ее структурной целостностид; исходя из сказанного, для предотвращения обнаружения и удаления метка должна быть невидима и хорошо скрыта данными исходного изображения, не допуская заметного искажения последнего не только из-за возможного обнаружения метки, но и из-за чисто эстетического соображения - не имеет смысла маркировать изображение, если его качество ухудшится настолько, что оно уже в принципе не будет похоже на оригинал;

стр 170


  • ЦВЗ должен быть устойчивым либо неустойчивым к преднамеренным и случайным воздействиям (в зависимости от приложения), если ЦВЗ используется для подтверждения подлинности, то недопустимое изменение контейнера должно приводить к разрушению ЦВЗ (хрупкий ЦВЗ), если же ЦВЗ содержит идентификационный код, логотип фирмы и т.п., то он должен сохраниться при максимальных искажениях контейнера, конечно, не приводящих к существенным искажениям исходного контента; например, у изображения могут быть отредактированы цветовая гамма или яркость, у аудиозаписи - усиленно звучание низких тонов и т.д., кроме того, ЦВЗ долженбыть роботоспособным по отношению к аффинным преобразованиям изображения, т.е. его поворотам, масштабированию; при этом надо различать устойчивость самого ЦВЗ и способность декодера верно его обнаружить, скажем, при повороте изображения ЦВЗ не разрушится, а декодер может оказаться не способным выделить его; существуют приложения, когда ЦВЗ должен быть устойчивым по отношению к одним преобразованиям и неустойчивым по отношению к другим, например, может быть разрешено копирование изображения (ксерокс, сканер), но наложен запрет на внесение в него каких-либо изменений;
  • защищенность (стойкость к фальсификации); если метка должна быть устойчива к различного вида помехам и трансформациям, следовательно она должна быть устойчива к действиям, на правленным на ее удаление;
  • ЦВЗ должен иметь низкую вероятность ложного обнаружения скрытого сообщения в сигнале, его не содержащем, в некоторых приложениях такое обнаружение может привести к серьезным последствиям, например, приложениях такое обнаружение может привести к серьезным последствиям, наприме, ложное обнаружение ЦВЗ на DVD-диске может вызвать отказ от его воспроизведения плеером;
  • ЦВЗ должен вычислительно легко извлекаться законным пользователем;
  • должна существовать возможность добавления к стего дополнительных ЦВЗ, например, на DVD-диске имеется метка о допустимости однократного копирования, после осуществления такого копирования необходимо добавить метку о запрете дальнейшего копирования; можно было бы, конечно, удалить первый ЦВЗ и записать на его место второй, однако это противоречит предложению об устойчивости ЦВЗ к атакам удаления; лучшим выходом является добавление еще одного ЦВЗ, после которого первый не будет принимать во внимание,

стр 171


Удовлетворить всем этим требованиям не просто, тнако существует множество компаний, предлагающих конкурирующие технологии и соответствующие программы для внедрения цифровых водяных знаков. Основные области использования ЦВЗ могут быть объединены в три группы: защита от копирования, скрытая аннотация документов и доказательств аутентичности информации (аутентификации) (рис. 4.20).

Области применения ЦВЗ:

  • Защита от копирования. Электронная коммерция, контроль за копированием (DVD), распространение мультимедийной информации (видео по запросу)
  • Скрытая аннотация документов. Медицинские снимки, картография, мультимедийные базы данных
  • Аутентификация. Системы видеонаблюдения, электронной коммерции, голосовой почты, электронное конфиденциальное делопроизводство

Необходимо отметить, что наибольшие достижения стеганографии в прошедшем десятилетии были получены именно в области развития цифровых водяных знаков. Эти достижения вызваны реакцией общества на альтернативную проблему защиты авторских прав в условиях общедоступных компьютерных сетей.

Алгоритмы встраивания ЦВЗ в полутоновые и бинарные изображения. В настоящее время существует не так много алгоритмов, позволяющих встраивать цифровой водяной знак в полутоновые и бинарные изображения. Во многом это связано с тем, что изображения. Во многом это связано с тем, что разработчикам приходится выбирать между качеством изображения и работоспособностью встраиваемой информации. Далее будут рассмотрены основные принципы работы некоторых алгоритмов, встраивающих ЦВЗ в изображения, основными цветами которых явзяются градации серого.

Рис. 4.20. Области применения ЦВЗ.

Алгоритмы скрытия данных в частотной области изображения. Во многих методах скрытия данных в изображениях используется та или иная декомпозиция изображения-контейнера. Среди всех преобразований наибольшую популярность в стеганографии получило дискретное косинусоидальное преобразование (ДКП), что отчасти объясняется его успешным применением при сжатии изображений. Обычно при встраивании информаыии с помощью ДКП контейнер разбивается на блоки 8 на 8 пиксилей. Преобразование применяется к каждому блоку, в результате чего получаются матрицы коэффициентов ДКП также размером 8 на 8 (рис.4.21). Коэффициент в левом верхнем углу матрицы обычно называется DC-коэффициентом и содержит информацию о яркости всего блока. Остальные коэффициенты называются АС коэффициентами. Основным недостатком данных алгоритмов является необходимость достаточно больших по размеру контейнеров.

стр 172¶

image.png

Рис.4.21. Мартица ДКП

Алгоритм Хсу и Ву. Основной особенностью данного алгоритма является то, что декодеру ЦВЗ требуется исходное изображение. Однако декодер определяет не факт наличия ЦВЗ, а выделяет встроенные данные. В качестве ЦВЗ выступает черно-белое изображение размером вдвое меньше контейнера (рис. 4.22). Для большей стойкости и скрытности результатов использования данного стеганографического метода количество встраиваемой информации на практике пытаются уменьшить.

image.png

Рис. 4.22. Внедряемый ЦВЗ

стр 173¶

Перед встраиванием изображение подвергается случайным перестановкам или перестановкам, зависящим от характеристик блоков контейнера, в который будет встроена информация (рис. 4.23). ЦВЗ встраивается в среднечастотные коэффициенты ДКП (четвертая часть от общего количества). Эти коэффициены расположены вдоль второй диагонали матрицы ДКП.

image.png

Рис.4.23. Результат псевдостучайной перестановки элементов ЦВЗ

Для внедрения бита ЦВЗ $s_i$ в коэффициент $c_b(i,k)$ находится знак разности коэффициента текущего блока и соответствующего ему коэффициента из предыдущего блока: $d_1(i)=sign (c_b(j,k)-c_{b-1}(j,k))$. Если необходимо встроить 1, коэффициент $c_b(j,k)$ меняют так, чтобы знак разности становился положительным, если 0- то чтобы знак стал отрицательным. Графичекое представление извлеченного ЦВЗ, встраивание которого производилось путем изменения отношений между значениями ДКП соседних блоков, изображено на рис. 4.24.

image.png

Рис.4.24. ЦВЗ, извлеченный из контейнера

Следует отметить, что этот алгоритм не является робастным по отношению к JPEG-компрессии, так же его отрицательными сторонами являются возможность исходных данных для извлечения ЦВЗ.

стр 174¶

Алгоритм Фридрих. Данный алгоритм является композицией двух алгоритмов: в одном данные встраиваются в низкочастотные, в другом в среднечастотные коэффициенты ДКП. Каскадное применение двух различных алгоритмов приводит к хорошим результатам в отношении робастности. Это объясняется тем, что недостатки одного алгоритма компенсируются достоинствами другого. Исходный сигнал детектору ЦВЗ не требуется.

Перед встраиванием ЦВЗ в низкочастотные коэффициенты изображение преобразуется в сигнал с нулевым математическим ожиданием и определенным отклонением яркости так, чтобы абсолютные значения коэффициентов ДКП попали в определенный диапазон. Для этой цели используется следующее преобразование: $I\longrightarrow(\frac{1024}{\sqrt{XY}}\frac{I-\widehat{I}}{\sigma(I)})$

где X,Y - размеры изображения I в пикселях, I и $\sigma(I)$ - соответственно математическое ожидание и стандартное отклонение значений яркости пикселей. ЦВЗ представляет собой сигнал в ввиде последовательности чисел {-1;1}.

Далее на основе геометрической прогрессии действительных чисел $t_0=1, t_{i+1}=\frac{1+\alpha}{1-\alpha}t_i$, где параметр $\alpha\in(0,1)$, строится функция $ind(t)=(-1)^i$, t>1, $\tau <= t < \tau_{i+1}$, позволяющая для каждого вещественного числа t>1 определить его индекс. Этот индекс только в том случае, если к числу t прибавить (отнять) число, превосходящее значение $\alpha t$. На рисунке 4.25 показан вид функции ind(t) для $\alpha=0,1$; $\alpha=0,2$; $\alpha=0,3$. Для внедрения бита ЦВЗ $s_i$ в коэффициент $c_j$ последний изменится не более чем на $100\alpha$ процентов так, чтобы $int(|c_j^t|)S_i$.

Операция извлечения производится путем выполнения аналогичных с операцией встраивания преобразования контейнера, который подозревается на наличие скрытого сообщения. В среднечастотные коэффициенты ДКП информация встраивается путем умножения преобразованного значения ЦВЗ на параметр $\alpha$ и сложения результата со значением коэффициента. Предварительное кодирование ЦВЗ выполняется по следующему алгоритму.

стр 175¶

image.png

image.png

image.png

Рис.4.25. Индексная функция ind(t)

Вход алгоритма: сообщение длины M, состоящее из символов $m_1\in{1,...,B}$; Выход алгоритма: ЦВЗ длины N, состоящий из вещественных чисел $S_i$. Для кодирования символа $m_i$ генерируется N+B+1 чисел псевдослучайной последовательности $r_i\in{-1,1}$. эту последовательность будем называть i-м случайным вектором. Первые $m_1$ чисел этого вектора пропускаются, а следующие N чисел образуют вектор $V_i$, используемый при дальнейшем суммировании. Для каждого символа сообщения генерируются статистически независимые различные случайные вектора.

В качестве ЦВЗ используется сумма векторов V_i. В результате композиии встраивания в НЧ и СЧ-коэффициенты получим алгоритм, достаточно стойкий ко многим атакам. Такой алгоритм полезен для защиты произведений искусства и других полутоновых изображений, являющихся авторской собственностью.

Алгоритм В.А. Митекина. Рассматриваемый метод основан на кодировании встраиваемой информации количеством темных или светлых пикселей в блоке фиксированного размера. В данном случае используется кодирование одного бита встраиваемой информации битом четности блока 3x3 пикселя.

стр 176¶

Предположим, что имеется бинарное изображение размера MxN пикселей. Разделим его на множество непересекающихся блоков $B_i$,каждый размера 3 на 3, где 1<=i<=(M на N): (3 на 3). В каждый из этих блоков будет внедрен бит информации $s_i$. Двумерный генератор псевдослучайных точек выбирает блок для внедрения. Решение о необходимости изменения бита в данном блоке принимается на основе формулы "контроля четности": $$ H= \begin{cases}0;s_i=\sum_{j=1}^{9} p_j (mod 2)\\1;s_i=\sum_{j=1}^{9} p_j (mod 2)\end{cases}$$ ; где $p_i$ - значение функции яркости пикселя в рассматриваемом блоке $B_i$.Если внедряемый бит соответствует биту четности H данного блока, то считается, что бит информации уже внедрен. Иначе необзодимо инвееертировать один пиксель в блоке. Выбор пикселя-кандидата для внедрения бита ЦВЗ основан на преобладающем цвете в блоке.

$$ H= \begin{cases} Черный; если N_B<4 \\Белый, если N_B>=7 \\Любой, если 4<=N_B<7 \end{cases}$$

где $N_B$ - количество темных пикселей в выбранном блоке. Предположим, что существует L кандидатов в блоке, из которых нужно выбрать один. На окрестность каждого кандидата накладывается матрица веса размера 5 на 5, с помощью которой рассчитываем "вес" каждого кандидата. Предположим, что кандидат имеет координаты (m,n). Тогда вес r расчитывается следующим образом: $r(m,n)=\sum_{j=-2}^{2}\sum_{j=-2}^{2}(\omega(i,j)*I_{mn}(i,j))$;

$$ I_{mn}(i,j)= \begin{cases} 0, если O(m,n)=O(m+i,n+j) \\1, если O(m,n)\neq O(m+i,n+j) \end{cases} $$

где $O(m,n)$ - значение функции яркости пикселя исходного изображения с координатами (m,n);

стр 177¶

$W=(\omega_{i,j})= \begin{pmatrix} 1 & 0 & 1 & 0 & 1 \\0 & 1 & 2 & 1 & 0 \\1 & 2 & 0 & 2 & 1 \\0 & 1 & 2 & 1 & 0 \\1 & 0 & 1 & 0 & 1 \end{pmatrix}; $ - матрица веса.

Вес $r(m,n)$ является мерой, характеризующей взаимосвязь кандидата и его соседних пикселей. Если найдено несколько кандидатов с одинаковым весом, то выбирается любой из них. В результате встраивания значение кандидата с наибольшим весом изменяется на противоположное. Таким образом, один блок содержит один бит ЦВЗ. На рисунке 4.26 представлены увеличенный фрагмент оригинального изображения и фрагмент того же самого изображения после внедрения в него ЦВЗ обьемом 40 бит.

image.png Рис.4.26. Пример встраивания ЦВЗ по алгоритму Митекина

Рассмотренный метод кодирования является наиболее широко распространенным для встраивания ЦВЗ в бинарные изображения. На его основе разработан ряд модифицированных алгоритмов. Одной из модификаций является расширение данного метода на полутоновые изображения. Изображение-контейнер представляет собой совокупность битовых "слоевв", каждый из которых представляет изображение с глубиной цвета 1 бит. Таким образом, данный алгоритм примееняетя для одного или нескольких выбранных "слоев". Выбранный слой изображения модифицируется в соответствии с представленным выше алгоритмом. Результатом встраивания ЦВЗ является изображение той же глубины цвета, что и исходное. Недостатком данного алгоритма яаляется низкая степень сохранения визуального качества изображения. Во-первых, это связано с малыми размерами блоков для встраивания информации. Во-вторых, с выбором блоков для встраивания, ведь в зависимости от выбранного алгоритма встраивание может производиться и в полностью белые и в полностью черные блоки, что приведет к значительному искажению изображения-контейнера. В модификациях данного алгоритма предприняты попытки устранить данные недостатки.

стр 178¶

Модификации алгоритма В.А. Митекина. Для программного обеспечения, встраивающего ЦВЗ в полутоновые изображения были разработаны две можификации алгоритма, описанного в работе В.А. Митекина. Обе модификации направлены на то, чтобы встроенная информация была незаметна в изображении-контейнере, т.е. на то, чтобы сделать алгоритм более робастным к атакам обнаружения. Если встраивать биты информации во все подряд блоки изображения, то оно будет сильно искажено, а сам ЦВЗ будет легко обнаружен. Было предложено следующее: в качестве ключа использовать матрицу $К=\begin{pmatrix}0 & 1 & 0\\1 & 1 & 1\\0 & 1 & 0\end{pmatrix};$ . Алгоритм обработки, написанный на псевдокоде, выглядит следующим образом:

$If(0<summ(F_i \Lambda K)<summ (K))$
$If(sum(F_i \Lambda K) mod 2=b) Keep F_i intact;$
$Else If (sum(F_i \Lambda K) mod 2 = 1)$
$Randomly pick a bit [F_i]_{j,k}=0, [K]_{i,k}=1 and change [F_i]_{j,k} to 1$;
$Else if(sum (F_i\Lambda K)=sum(K)-1)$
$Randomly pick a bit [F_i]_{i,k}=1,[K]_{j,k}=1 and change [F_i]_{j,k} to 0;$
$Else$
$Randomly pick a bit [F_i]_{j,k},[K]_{j,k}=1 and complement [F_i]_{j,k};$
$Else$
$No data will be embedded in F_i and F_j keeps intact$

стр 179¶

На рисунке 4.27 изображен пример встраивания трех бит информации в черно-белое изображение размером 6 на 6. Изображение F делится на четыре равных блока размером 3 на 3 и в них по порядку встраивается информация.

image.png

Рис. 4.27. Пример встраивания информации с использованием ключа.

$F_1:sum(F_1\Lambda K)=5=sum(K)$ - в этот блок данные не встраиваются; $F_2:sum(F_2\Lambda K)=3$ - в этот блок можно встроить 1 бит данных, встраиваемый бит - 0, $F_{2}^{'}$ - результат встраивания в соответствии с описанным выше алгоритмом; $F_3:sum(F_3\Lambda K)=3$ - в этот блок можно встроить 1 бит данных, встраиваемый бит - $ 1 = F_3 mod 2$, блок контейнера изменять не нужно; $F_4:sum(F_4\Lambda K)=3$ - в этот блок можно встроить 1 бит данных, встраиваемый бит - 1 , $F_{4}^{'}$ - результат встраивания в соответствии с описанным выше алгоритмом.

Используя описанный выше алгоритм для определения, необходимы ли изменения в каком-либо конкретном блоке для встраивания бита информации, дальше действуем в соответствии с алгоритмом Митекина. Вместо случайного выбора бита для изменения выбираем наиболее подходящий бит для встраивания последовательности наложения на кандидаты матрицы веса.

Недостатком этой модификации, как и исходного алгоритма, является маленький размер блоков, на которые делится изображение-контейнер. Кроме того, ключ, при помощи которого выбираются блоки для встраивания, позволяет избежать встраивания только в полностью белые блоки. Если изображение содержит крупные области черного цвета, то в заполненном контейнере на этом месте вследствие встраивания появятся строчки белых пикселей, что нанесет существенный ущерб как внешнему виду изображения, так и робастности ЦВЗ к атакам обнаружения.

С учетом перечисленных выше недостатков, был разработан еше один алгоритм, который является усложненной модификацией первых двух. Во-первых, в нем изображение уже разделяется не на блоки 3 на 3, на блоки 7 на 7 пикселей. Во-вторых, используется не один, а два ключа, что делаетс алгоритм выбора блоков сложнее, а самое главное, позволять избежать встраивания как в полностью белые, так и в полностью черные блоки. Оба этих изменения в совокупности довольно значительно повышают роботоспособность встраиваемого ЦВЗ к атакам обнарудения и степень сохранения визуального качества изображения.

стр 180¶

Недостатком данного алгоритма является его рессурсозатратность. Так, для встраивания одного бита информации нам необходим блок размером 7 на 7. Таким образом, для встраивания одного символа необходимо восемь блоков или 49 на 8 = 392 пикселя. Кроме того, каждый ЦВЗ содержит символ-признак его начала и оконсания. Получается, что для встраивания цифрового водяного знака, состоящего только из одного символа, требует 24 блока 7 на 7, т.е. изображение, содержащие 1176 пикселей. И его - минимум, основанный на предположении о том, что все блоки будут пригодны для встраивания (пройдут проверку ключами).

Описание программного обеспечения для встраивания ЦВЗ. На основе модификаций алгоритма В.А. Митекина, описанных выше, предлагается две программы с одинаковым интерфейсом, реализующие встраивание ЦВЗ двумя различными вариантами одного метода. Описание структуры и алгоритмов. Программы работают с файлами формата .bmp. Этот формат был выбран из-за его избыточности и возможности работать с ним в любой версии операционной системы (ОС) Windows за счет специальных встроенных функций. Программы позволяет встраивать цифровой водяной знак в монохромные изображения.

Обобщенный алгоритм работы программ представлен на рис. 4.28. Описание интерфейса. Интерфейс обеих программ совершенно одинаков. Так же ничем не отличаются и основы работы с ними. Основные различия заключаются в принципах встраивания ЦВЗ, и, следовательно, как будет показано далее, в результатах встраивания. Структура главного меню изображена на рис. 4.29. Пункты меню File позволяют открывать изображения для встраивания (извлечения) ЦВЗ и сохранять модифицированные изображения. Пункты меню Edit запускаются процессы встраивания и извлечения цифровогго знака. Их дублируют кнопки Hide и Extract, расположенные под строкой ввода текста. В текстовой строке содержится либо текст встраиваемого ЦВЗ, набранный пользователем, либо текст извлеченной метки.

стр 181¶

image.png

Рис. 4.28. Обобщенный алгоритм работы ПО, встраивающего ЦВЗ Руководство по использованию ПО и примеры работы. Для работы с любой из программ прежде всего необходимо открыть подходящий файл .bmp. Для этого выбираются пункт меню File - Open и открывается диалоговое окно открытия файла. Если выбранный файл представляется собой не черно-белое изображение, пользователю выдается сообщение об ошибке (рис. 4.30).

стр 182¶

image.png

Рис. 4.29. Структура главного меню

image.png

Рис. 4.30. Сообщение о неподходящем формате открытия файла.

После открытия изображения пользователь выбирает — извлекаться будет UB3 или встраиваться. Для встраивания в текстовую строку приложения должен быть введен текст метки (рис. 4.31).

image.png

Рис.4.31. Цифровой водяной знак

стр 183¶

После нажатия кнопки Hide или выбора соответствующего пункта меню начинается сам процесс встраивания. В случае если изображение- контейнер слишком мало для встраивания введенной в текстовой строке информации, выдается сообщение об ошибке (рис. 4.32). Если же процесс встраивания завершится успешно, модифицированное изображение будет выведено на экран и пользователь сможет его сохранить. Для этого выбирается пункт меню File - Save.

image.png Рис.4.32. Сообщение о том, что введенный ЦВЗ превышает допустимый для встраивания размер

Для извлечения цифрового водяного знака необходимо нажать кнопку Extract или так же, как и при встраивании, выбрать соответствующий пункт меню. Ксли в изображении не будет обнаружено скрытой информации, пользователь получит об этом сообщение (рис. 4.33), иначе в текстовой строке будет выведен текст ЦВЗ (рис. 4.34).

image.png Рис. 4.33. Сообщение о том, что ЦВЗ не обнаружен

Обе программы имеют свои преимущества и недостатки. Например, программа встраивающая ЦВЗ в блоки изображения размера 3 на 3, имеет преимущества при работе с изображениями, размер которых не позволяет встраивать большое количество символов. Для встраивания одного символа данной программе требуется всего 72 пикселя изображения, в то время как другой программе нужно 392 пикселей. Примеры встраивания ЦВЗ, состоящего из 28 символов (224 бита), обеими программами в изображение размерами 128 на 117 пикселей показаны рис. 4.35 и 4.36.

стр 184¶

image.png Рис. 4.34. Пример извлечения ЦВЗ

image.png

Рис.4.35. Пустой контейнер размером 128 на 117 пикселей

image.png

Рис. 4.36. Пример встраивания ЦВЗ в изображение размером 128 на 117 пикселей: a) в блоки 3 на 3 пикселя; б) в блоки 7 на 7 пикселей.

стр 185¶

При работе с изображениями, имеющими достаточно большие по размеру области черного цвета, лучше использовать программу, работающую с блоками изображения размером 7 на 7 пикселей. Программа, встраивающая метку в блок 3 на 3 пикселя, в связи с наличием всего одного ключа показывает на таких изображениях недостаточно хорошие результаты по сохранению внешнего вида исходного изображения. Примеры работы программ для таких изображений представлены на рис. 4.37 и рис. 4.38. В изображение размером 400 на 30 пикселей встраивается ЦВЗ из 28 символов.

image.png Рис. 4.37. Встраивание ЦВЗ в блоки изображения размером 3 на 3 пикселя

image.png Рис.4.38. Встраивание ЦВЗ в блоки изображения размером 7 на 7 пикселей

стр 136¶

Задание

  • 1)Запустите программу waatermark_1.05, предварительно установленную на Ваш компуктер.
  • 2)Выберите пункт Open из меню File появившегося окна. Откройте, подготовленный заранее .bmp файл - контейнер с черно-белым изображением, в который необходимо встроить ЦВЗ (заранее необходимо подготовить три файла контейнера: с большими областями белого цвета; с большими областями черного цвета; с чередующимися областями белого и черного цветов). После открытия изображения необходимо выбрать - извлекаться будет ЦВЗ или встраиваться. Для встраивания в текстовую строку приложения должен быть внедрен текст метки (см. рис. 4.31.). Подготовьте текст встраиваемого ЦВЗ и выполните встраивание. Сохраните файл со встроенной меткой в личной папке.
  • 3)Действия, описанные в п. 2, повторите со всеми подготовленными файлами-контейнерами, не изменяя метку встраивания. Сравните полученные файлы-контейнеры на наличие визуальных искажений и по объему с исходными (непомеченными) файлами. Сделайте вывод об эффективности используемого алгоритма встраивания ЦВЗ.
  • 4)Проведите извлечение ЦВЗ из всех помеченных файлов (процесс излечения описан в разделе 3, см. рис. 4.32, 4.33). Сравните их качество, сделайте выводы об эффективности алгоритма извлечения ЦВЗ.
  • 5)Помеченные файлы-контейнеры подвергните обработке с использованием: алгоритмов архивации с потерями; преобразований изображения (модификация, обрезание краев, масштабирование).
  • 6)Повторите действия п. 4 по извлечению ЦВЗ из обработанных файлов-контейнеров. Сделайте выводы о робастности ЦВЗ.
  • 7)Запустите программу watermark_2.02, предварительно установленую на Ваш компьютер. Проделайте п. 2-5 с использованием программы цфеукьфкл_2.02. Сравните результаты с полученными при использовании программы watermark_1.05. Сформулируйте выводы.
  • 8)Сохраните в отчете экранные формы, демонстрирующие процесс встраивания ЦВЗ в различные файлы контейнеры. Сделайте выводы об эффективности изученного метода защиты.
  • 9)Включите в отчет о лабораторной работе ответы на контрольные вопросы, выбранные в соответствии с номером варианта из табл. 4.2.

стр 187¶

  • Номер варианта - Контрольные вопросы
  • 1,5,7,26 - Перечислите способы защиты цифровых графических изображений от модификации и несанкционированного использования. Укажите их достоинства и недостатки
  • 2,4,6 - В чем особенность робастных, хрупких и полухрупких цифровых водяных знаков? Каковы ограничения в их использования для защиты электронных документов?
  • 1, 13 - Перечислите основные международные и отечественные источники защиты прав авторов цифрового графического контента
  • 12, 14, 16 - Алгоритм Хсу и Ву - особенности реализации, достоинства и недостатки
  • 3, 9, 18, 29 - Алгоритм Фридрих - особенности реализации, достоинства и недостатки
  • 20,22,24 - Какие методы стеганографии могут использоваться для защиты графических файлов? Сравните методы стеганографической защиты и криптографической защиты.
  • 10,17,19 - Алгоритм В.А. Митекина - особенности реализации, достоинства и недостатки
  • 21,23,25 -В чем заключается усовершенствование алгоритма В.А. Митекина в программных продуктах, использованных в лабораторной работе? Оцените эффективность исследованного алгоритма для встраивания ЦВЗ?
  • 8,28,27 - Подсчитайте максимальный объем встраиваемых ЦВЗ в бинарное изображение размером 1024 на 128 пикселей: а) блоки 3 на 3 пикселя, б) в блоки 7 на 7 пикселей
  • 12,15,30 - подсчитайте максимальный встраиваемого ЦВЗ в полутоновое изображение (256 градаций серого) размером 512 на 256 пикселей: a) в блоки 3 на 3 пикселя, б) в блоки 7 на 7 пикселей.

стр 188¶

Лабораторная работа № 15 Стегокомплексы, допускающие использование аудиоконтейнеров, на примере программы invisible secrets-4

Цель работы: изучение современных программных средств стеганографии на примере пакета Invisible Secrets-4. Примечание. Для выполнения лабораторной работы на компьютере необходимо установить программу Invisible Secrets-4.

Описание лабораторной работы. Пакет Invisible Secrets-4 отличает проработанность пользовательского интерфейса, выполненного в виде «мастера», интегрированность в среду Microsoft Windows и удобство использования. Данный пакет программ может использовать в качестве контейнеров как аудио, так и графические файлы.

В качестве контейнеров данный программный продукт использует неупакованные аудиоданные, оцифрованные с разрядностью 8 или 16 бит на отсчет. Перед сокрытием сообщения оно шифруется. Доступны такие алгоритмы шифрования, как Rijndael, ГОСТ 28147-89 , Blowfish и др.

При разработке стеганографических методов сокрытия информации основной целью является построение помехоустойчивого, необ- наруживаемого метода. В связи с этим при рассмотрении программного продукта уделим особое внимание не интерфейсу, а реализованным методам.

Поскольку не для всех программных продуктов доступен исходный текст программы, то выводы часто приходится делать на основе анализа работы программы на тестовых контейнерах. В качестве тестовых контейнеров были выбраны: тональный сигнал с частотой 440 Гц и тишина (сигнал, у которого все отсчеты равны нулю). На рисунке 4.39 показан результат работы программы Invisible Secrets-4 на тестовых контейнерах при оцифровке 8 бит на отсчет.

image.png

Рис. 4.39. Результат работы программы на тестовых контейнерах

стр 189¶

На рисунке по горизонтали указываются отсчеты сигнала, по вертикали - разряды при записи отсчетов в двоичном виде. При наличии прямоугольника в соответствующем разряде соответствующего сэмпла стоит единица, в противном случае ноль. В верхней половине рисунка (выше разделительной линии) изображены отсчеты исходного сигнала контейнера, в нижней половине - отсчеты модифицированного сигнала контейнера. Перечеркнутые прямоугольники соответствуют не- совпадающим битам в исходном и модифицированном контейнерах. На левом рисунке показан тональный сигнал, на правом - сигнал, содержащий тишину.

Программа Invisible Secrets-4 при внедрении данных в аудио контейнер использует наиболее распространенный в настоящее время метод модификации младшего бита (LSB-метод). Более того, при внедрении не производится никакого анализа содержимого контейнера, что видно из рисунка, где программа внедрила информацию в файл, содержащий тишину. Существенным недостатком данного программного продукта также является то, что при внедрении небольшого количества информации вся информация внедряется в начало контейнера, а не распределяется равномерно по всему контейнеру. Таким образом, возможно обнаружение наличия скрытого сообщения на основе анализа локальных различий статистик в разных частях контейнера. На рисунке 4.40 приведен вид главного меню программы Invisible Secrets-4.

image.png

Рис, 4.40, Главное меню программы Invisible Secrets-4

стр 190¶

Программа Invisible Secrets-4 состоит из шести функциональных модулей. Рассмотрим каждый из них отдельно. Стеганография Программа позволяет зашифровать и спрятать данные в таких местах, которые на поверхности выглядят совершенно безобидными, например в картинку, файлы с музыкой или веб-страницы. Такие типы контейнеров - прекрасная маскировка для секретной информации.

image.png Рис. 4.41. Выбор файла, который необходимо встроить или зашифровать, и задание соответствующих параметров

image.png

Рис. 4.42. Выбор файла для извлечения из файлаконтейнера или расшифрования

стр 191¶

Шифрование Шифрование, В программе Invisible Secrets-4 предусмотрена зашита файлов с использованием современных методов симметричного шифрования. Только владелец секретного пароля сможет прочесть их. Программа поддерживает такие алгоритмы шифрования, как: Rijndael ГОСT 28147-89 , Blowfish, 7wofish, RC4, Castl 28, Diamond 2, Sapphire Il. На рисунке 4.43 приведена панель шифрования файлов, а на рис. 4.44 панель расшифрования файлов.

image.png Рис. 4.43. Панель шифрования файлов

image.png Рис, 4.44. Панель расшифрования файлов

стр 192¶

Шифрование почтовых сообщений. Чрезвычайно актуальными являются процессы обмена конфиденциальной информацией в сети. При обмене личными сообщениями или коммерческими секретами возникают необходимость защищать конфиденциальную информацию от несанкционированного прочтения или модификации. Программы Invisible Secrets-4 поможет отослать зашифрованное сообщение по e-mail, а полутателю для его расшифрования необходимо будет знать только правильный пароль. На рисунке 4.45 приводится панель программы Invisible Secrets-4 для создания самораспаковывающегося пакета для его отправки по e-mail.

image.png

Рис. 4.45. Создание самораспаковывающегося пакета для его отправки по e-mail

Уничтожение папок, файлов и ссылок. Для уничтожения секретных папок или файлов без возможности их восстановления, также различных ссылок в программе Invisible Secrets-4 используется модуль DoD 5220.22-M Shredder. Панель для уничтожения палок и файлов приведена на рис. 4.46, а для уничтожения ссылок на рис. 4.47.

стр 193¶

image.png Рис. 4.46. Выбор папки или файла, которые необходимо уничтожить

image.png Рис. 4.47. Уничтожение ссылок

Передача паролей Безопасная передача паролей. Одна из главных проблем, возникающих при организации защищенного обмена информацией, - это передача секретных паролей и ключей. Invisible Secrets-4 позволяет обмениваться паролями между двумя компьютерами при помощи создания безопасного соединения IP-к-IP.

стр 194 ¶

image.png Рис. 4.48. Безопасная передача пароля

Заданиие

    1. Установить на своем компьютере программу Invisible Secrets 4.
    1. Ознакомиться со сведениями о программе Invisible Secrets, изложенными в разделе 1.
    1. Запустить программу Invisible Secrets-4.
    1. Изучить прогрamмы Invisible Secrets всex шести возможных режимах: стеганография; шифрование; шифрование почтовых сообщений; уничтожение файлов; передача паролей; ограничение доступа к приложениям.
  1. Сохранить в отчете экранные формы, демонстрирующие вол- можности программы Invisible Secrets 4 при работе в каждом из шести режимов.
  2. Сделать выволы об эффективности используемого стеганогра Фического пакета для каждого из рассмотренных режимов
  3. Включить в отчет о лабораторной работе ответы на контрольные вопросы, выбранные в соответствии с номером варианта из табл, 4.3.

стр 195¶

Таблица 4.3

  • Номер варианта - Контрольные вопросы
  • 1, 5, 7, 3, 9, 18, 28 - Сформулируйте основные отличия стеганографических и криптографических методов защиты информационных ресурсов. В чем достоинства и недостатки каждого из методов?
  • 2, 4, 6, 8, 20, 22, 24, 26, 30 - Перечислите шесть основных режимов работы программы Invisible Secrets-4. В каких случаях вы можете порекомендовать использование каждого из режимов?
  • 11, 13, 15, 10, 17, 19, 27 - Оцените эффективность работы программы Invisible Secrets-4 с графическими и аудиофайлами различных типов. Для этого в режиме «стеганография» встройте данные в контейнеры различных форматов, сравните пустые и заполненные контейнеры, сделайте выводы
  • 12, 14, 16, 21, 23, 25, 29 - При встраивании данных в режиме «стеганография» используйте различные алгоритмы для шифрования встраиваемых данных. Сравните пустые и заполненные контейнеры, как изменяется размер заполненных контейнеров в зависимости от метода шифрования? Почему вы получили такие результаты, обоснуйте

Список литературы

    1. Бабаш А. В., Шанкин Г.П. Криптография / под ред. В. П. Шерстюка, Э.А. Применко. М. : СОЛОН-Р, 2002.
    1. Башлы П.Н., Бабаш А.В., Баранова Е.К. Информационная безопасность : учебно-практ. пособие. М. : Изд. центр ЕАОИ, 2010.
    1. Грибунин В.Г., Оков И.Н., Туринцев И.В. Цифровая стеганография. М. : СОЛОН-Пресс, 2002.
    1. Конахович Г.Ф. Компьютерная стеганография: теория и практика. М. : МК-Пресс, 2006.
    1. Митекин В.А. Модифицированные методы статистического сте- гоанализа бинарных и полутоновых изображений // Компьютерная оптика. 2005. № 28. С. 145-152 .
    1. Мотуз О. В. Защита авторских прав с помощью цифровых «водяных знаков» // Защита информации. Конфидент. 1998. № 6. С. 66 -70.
    1. Fu M.S., Au O.C. Data hiding by smart pair togglingfor halftone images // Proc. of the IEEE International Conference on Acoustics, Speech and Signal Processing, Istanbul, Turkey, 2000. Vol. 4. P. 2318-2321.

стр 196¶

E.К. Баранова, А.В. Бабаш КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ ЛАБОРАТОРНЫЙ ПРАКТИКУМ Посвящено рассмотрению практических вопросов защиты информации методами криптографии и стеганографии. Содержит описание лабораторных работ с комплексом исполняемых программных модулей на CD. Все практические работы предваряет теоретический раздел и заключает перечень контрольных вопросов. Соответствует действующему Федеральному государственному образовательному стандарту высшего образования нового поколения. Для студентов бакалавриата и магистратуры, обучающихся по различным специальностям, использующих федеральный компонент по основам информационной безопасности и защите информации.

In [5]:
import os;import math;import sys;import datetime;
var='\\EBOOK.ipynb'
print (var,':',os.path.getsize(os.path.abspath(os.curdir)+var)/math.pow(2, 20),' мегобайт ',datetime.datetime.now())
#http://localhost:8888/notebooks/Untitled1.ipynb
#print("http://localhost:8888/notebooks/Untitled1.ipynb")
\EBOOK.ipynb : 38.92261219024658  мегобайт  2024-04-19 11:00:00.095451